From a7e5a6d4b1499c75d50624ab12f40dc0080899f4 Mon Sep 17 00:00:00 2001
From: "Hazal2.Veziroglu@live.uwe.ac.uk" <hazal2.veziroglu@live.uwe.ac.uk>
Date: Mon, 25 Nov 2024 16:50:42 +0000
Subject: [PATCH] Update 79 files

- /worksheet_0/task2_array_pointer.c
- /worksheet_0/task3_array_compare.c
- /worksheet_0/task2_array_pointer
- /worksheet_0/task4_file_sum
- /worksheet_0/task4_file_sum.c
- /worksheet_0/task1_pointer.c
- /worksheet_0/task7_tic_tac_toe
- /worksheet_0/task6_print_2d_array
- /worksheet_0/task5_swap_function
- /worksheet_0/task6_print_2d_array.c
- /worksheet_0/task1_pointer
- /worksheet_0/foo.txt
- /worksheet_0/task5_swap_function.c
- /worksheet_0/task3_array_compare
- /worksheet_0/task7_tic_tac_toe.c
- /worksheet_0/task3_array_compare.dSYM/Contents/Info.plist
- /worksheet_0/task3_array_compare.dSYM/Contents/Resources/Relocations/x86_64/task3_array_compare.yml
- /worksheet_0/task3_array_compare.dSYM/Contents/Resources/DWARF/task3_array_compare
- /worksheet_0/task2_array_pointer.dSYM/Contents/Info.plist
- /worksheet_0/task2_array_pointer.dSYM/Contents/Resources/Relocations/x86_64/task2_array_pointer.yml
- /worksheet_0/task2_array_pointer.dSYM/Contents/Resources/DWARF/task2_array_pointer
- /worksheet_0/task7_tic_tac_toe.dSYM/Contents/Info.plist
- /worksheet_0/task7_tic_tac_toe.dSYM/Contents/Resources/Relocations/x86_64/task7_tic_tac_toe.yml
- /worksheet_0/task7_tic_tac_toe.dSYM/Contents/Resources/DWARF/task7_tic_tac_toe
- /worksheet_0/task5_swap_function.dSYM/Contents/Info.plist
- /worksheet_0/task5_swap_function.dSYM/Contents/Resources/Relocations/x86_64/task5_swap_function.yml
- /worksheet_0/task5_swap_function.dSYM/Contents/Resources/DWARF/task5_swap_function
- /worksheet_0/task4_file_sum.dSYM/Contents/Info.plist
- /worksheet_0/task4_file_sum.dSYM/Contents/Resources/Relocations/x86_64/task4_file_sum.yml
- /worksheet_0/task4_file_sum.dSYM/Contents/Resources/DWARF/task4_file_sum
- /worksheet_0/task6_print_2d_array.dSYM/Contents/Info.plist
- /worksheet_0/task6_print_2d_array.dSYM/Contents/Resources/Relocations/x86_64/task6_print_2d_array.yml
- /worksheet_0/task6_print_2d_array.dSYM/Contents/Resources/DWARF/task6_print_2d_array
- /worksheet_0/task1_pointer.dSYM/Contents/Info.plist
- /worksheet_0/task1_pointer.dSYM/Contents/Resources/Relocations/x86_64/task1_pointer.yml
- /worksheet_0/task1_pointer.dSYM/Contents/Resources/DWARF/task1_pointer
- /worksheet_1/makefile
- /worksheet_1/README.md
- /worksheet_1/src/task2.asm
- /worksheet_1/src/task3.asm
- /worksheet_1/src/task1.asm
- /worksheet_1/src/task4.asm
- /worksheet_1/src/task1.o
- /worksheet_1/src/driver.o
- /worksheet_1/src/asm_io.o
- /worksheet_1/src/asm_io.inc
- /worksheet_1/src/asm_io.asm
- /worksheet_1/src/driver.c
- /worksheet2_1/Makefile
- /worksheet2_1/loader.asm
- /worksheet2_1/README.md
- /worksheet2_1/loader.o
- /worksheet2_1/iso/boot/grub/menu.lst
- /worksheet2_1/iso/boot/grub/stage2_eltorito
- /worksheet2_1/source/link.ld
- /worksheet2_2/interrupts.h
- /worksheet2_2/interrupts.o
- /worksheet2_2/pic.c
- /worksheet2_2/hardware_interrupt_enabler.s
- /worksheet2_2/keyboard.c
- /worksheet2_2/types.h
- /worksheet2_2/Makefile
- /worksheet2_2/kmain.o
- /worksheet2_2/frame_buffer.c
- /worksheet2_2/loader.s
- /worksheet2_2/interrupts.c
- /worksheet2_2/pic.h
- /worksheet2_2/pic.o
- /worksheet2_2/io.o
- /worksheet2_2/keyboard.h
- /worksheet2_2/io.h
- /worksheet2_2/keyboard.o
- /worksheet2_2/io.s
- /worksheet2_2/interrupt_asm.o
- /worksheet2_2/interrupt_asm.s
- /worksheet2_2/interrupt_handlers.o
- /worksheet2_2/interrupt_handlers.s
- /worksheet2_2/frame_buffer.h
- /worksheet2_2/kmain.c
---
 worksheet2_1/Makefile                         |  38 ++++++
 worksheet2_1/README.md                        |   3 +
 worksheet2_1/iso/boot/grub/menu.lst           |   5 +
 worksheet2_1/iso/boot/grub/stage2_eltorito    |   0
 worksheet2_1/loader.asm                       |  17 +++
 worksheet2_1/loader.o                         | Bin 0 -> 544 bytes
 worksheet2_1/source/link.ld                   |  22 ++++
 worksheet2_2/Makefile                         |  24 ++++
 worksheet2_2/frame_buffer.c                   |  12 ++
 worksheet2_2/frame_buffer.h                   |  11 ++
 worksheet2_2/hardware_interrupt_enabler.s     |   0
 worksheet2_2/interrupt_asm.o                  | Bin 0 -> 432 bytes
 worksheet2_2/interrupt_asm.s                  |   6 +
 worksheet2_2/interrupt_handlers.o             | Bin 0 -> 576 bytes
 worksheet2_2/interrupt_handlers.s             |  17 +++
 worksheet2_2/interrupts.c                     | 115 ++++++++++++++++++
 worksheet2_2/interrupts.h                     |  40 ++++++
 worksheet2_2/interrupts.o                     | Bin 0 -> 2448 bytes
 worksheet2_2/io.h                             |   7 ++
 worksheet2_2/io.o                             | Bin 0 -> 416 bytes
 worksheet2_2/io.s                             |   9 ++
 worksheet2_2/keyboard.c                       |  43 +++++++
 worksheet2_2/keyboard.h                       |  11 ++
 worksheet2_2/keyboard.o                       | Bin 0 -> 944 bytes
 worksheet2_2/kmain.c                          |  13 ++
 worksheet2_2/kmain.o                          | Bin 0 -> 360 bytes
 worksheet2_2/loader.s                         |   0
 worksheet2_2/pic.c                            |  19 +++
 worksheet2_2/pic.h                            |  14 +++
 worksheet2_2/pic.o                            | Bin 0 -> 700 bytes
 worksheet2_2/types.h                          |  13 ++
 worksheet_0/foo.txt                           |   5 +
 worksheet_0/task1_pointer                     | Bin 0 -> 33320 bytes
 worksheet_0/task1_pointer.c                   |  12 ++
 .../task1_pointer.dSYM/Contents/Info.plist    |  20 +++
 .../Contents/Resources/DWARF/task1_pointer    | Bin 0 -> 9119 bytes
 .../Relocations/x86_64/task1_pointer.yml      |   7 ++
 worksheet_0/task2_array_pointer               | Bin 0 -> 33456 bytes
 worksheet_0/task2_array_pointer.c             |  12 ++
 .../Contents/Info.plist                       |  20 +++
 .../Resources/DWARF/task2_array_pointer       | Bin 0 -> 9239 bytes
 .../x86_64/task2_array_pointer.yml            |   7 ++
 worksheet_0/task3_array_compare               | Bin 0 -> 33576 bytes
 worksheet_0/task3_array_compare.c             |  20 +++
 .../Contents/Info.plist                       |  20 +++
 .../Resources/DWARF/task3_array_compare       | Bin 0 -> 9503 bytes
 .../x86_64/task3_array_compare.yml            |   8 ++
 worksheet_0/task4_file_sum                    | Bin 0 -> 33488 bytes
 worksheet_0/task4_file_sum.c                  |  18 +++
 .../task4_file_sum.dSYM/Contents/Info.plist   |  20 +++
 .../Contents/Resources/DWARF/task4_file_sum   | Bin 0 -> 10544 bytes
 .../Relocations/x86_64/task4_file_sum.yml     |   7 ++
 worksheet_0/task5_swap_function               | Bin 0 -> 33616 bytes
 worksheet_0/task5_swap_function.c             |  22 ++++
 .../Contents/Info.plist                       |  20 +++
 .../Resources/DWARF/task5_swap_function       | Bin 0 -> 10074 bytes
 .../x86_64/task5_swap_function.yml            |   8 ++
 worksheet_0/task6_print_2d_array              | Bin 0 -> 33608 bytes
 worksheet_0/task6_print_2d_array.c            |  20 +++
 .../Contents/Info.plist                       |  20 +++
 .../Resources/DWARF/task6_print_2d_array      | Bin 0 -> 9481 bytes
 .../x86_64/task6_print_2d_array.yml           |   8 ++
 worksheet_0/task7_tic_tac_toe                 | Bin 0 -> 33720 bytes
 worksheet_0/task7_tic_tac_toe.c               |  59 +++++++++
 .../Contents/Info.plist                       |  20 +++
 .../Resources/DWARF/task7_tic_tac_toe         | Bin 0 -> 10100 bytes
 .../Relocations/x86_64/task7_tic_tac_toe.yml  |   9 ++
 worksheet_1/README.md                         |   9 ++
 worksheet_1/makefile                          |  28 +++++
 worksheet_1/src/asm_io.asm                    |  26 ++++
 worksheet_1/src/asm_io.inc                    |  30 +++++
 worksheet_1/src/asm_io.o                      | Bin 0 -> 304 bytes
 worksheet_1/src/driver.c                      |   7 ++
 worksheet_1/src/driver.o                      | Bin 0 -> 572 bytes
 worksheet_1/src/task1.asm                     |  17 +++
 worksheet_1/src/task1.o                       | Bin 0 -> 704 bytes
 worksheet_1/src/task2.asm                     |  53 ++++++++
 worksheet_1/src/task3.asm                     |  23 ++++
 worksheet_1/src/task4.asm                     |  66 ++++++++++
 79 files changed, 1060 insertions(+)
 create mode 100644 worksheet2_1/Makefile
 create mode 100644 worksheet2_1/README.md
 create mode 100644 worksheet2_1/iso/boot/grub/menu.lst
 create mode 100644 worksheet2_1/iso/boot/grub/stage2_eltorito
 create mode 100644 worksheet2_1/loader.asm
 create mode 100644 worksheet2_1/loader.o
 create mode 100644 worksheet2_1/source/link.ld
 create mode 100644 worksheet2_2/Makefile
 create mode 100644 worksheet2_2/frame_buffer.c
 create mode 100644 worksheet2_2/frame_buffer.h
 create mode 100644 worksheet2_2/hardware_interrupt_enabler.s
 create mode 100644 worksheet2_2/interrupt_asm.o
 create mode 100644 worksheet2_2/interrupt_asm.s
 create mode 100644 worksheet2_2/interrupt_handlers.o
 create mode 100644 worksheet2_2/interrupt_handlers.s
 create mode 100644 worksheet2_2/interrupts.c
 create mode 100644 worksheet2_2/interrupts.h
 create mode 100644 worksheet2_2/interrupts.o
 create mode 100644 worksheet2_2/io.h
 create mode 100644 worksheet2_2/io.o
 create mode 100644 worksheet2_2/io.s
 create mode 100644 worksheet2_2/keyboard.c
 create mode 100644 worksheet2_2/keyboard.h
 create mode 100644 worksheet2_2/keyboard.o
 create mode 100644 worksheet2_2/kmain.c
 create mode 100644 worksheet2_2/kmain.o
 create mode 100644 worksheet2_2/loader.s
 create mode 100644 worksheet2_2/pic.c
 create mode 100644 worksheet2_2/pic.h
 create mode 100644 worksheet2_2/pic.o
 create mode 100644 worksheet2_2/types.h
 create mode 100644 worksheet_0/foo.txt
 create mode 100644 worksheet_0/task1_pointer
 create mode 100644 worksheet_0/task1_pointer.c
 create mode 100644 worksheet_0/task1_pointer.dSYM/Contents/Info.plist
 create mode 100644 worksheet_0/task1_pointer.dSYM/Contents/Resources/DWARF/task1_pointer
 create mode 100644 worksheet_0/task1_pointer.dSYM/Contents/Resources/Relocations/x86_64/task1_pointer.yml
 create mode 100644 worksheet_0/task2_array_pointer
 create mode 100644 worksheet_0/task2_array_pointer.c
 create mode 100644 worksheet_0/task2_array_pointer.dSYM/Contents/Info.plist
 create mode 100644 worksheet_0/task2_array_pointer.dSYM/Contents/Resources/DWARF/task2_array_pointer
 create mode 100644 worksheet_0/task2_array_pointer.dSYM/Contents/Resources/Relocations/x86_64/task2_array_pointer.yml
 create mode 100644 worksheet_0/task3_array_compare
 create mode 100644 worksheet_0/task3_array_compare.c
 create mode 100644 worksheet_0/task3_array_compare.dSYM/Contents/Info.plist
 create mode 100644 worksheet_0/task3_array_compare.dSYM/Contents/Resources/DWARF/task3_array_compare
 create mode 100644 worksheet_0/task3_array_compare.dSYM/Contents/Resources/Relocations/x86_64/task3_array_compare.yml
 create mode 100644 worksheet_0/task4_file_sum
 create mode 100644 worksheet_0/task4_file_sum.c
 create mode 100644 worksheet_0/task4_file_sum.dSYM/Contents/Info.plist
 create mode 100644 worksheet_0/task4_file_sum.dSYM/Contents/Resources/DWARF/task4_file_sum
 create mode 100644 worksheet_0/task4_file_sum.dSYM/Contents/Resources/Relocations/x86_64/task4_file_sum.yml
 create mode 100644 worksheet_0/task5_swap_function
 create mode 100644 worksheet_0/task5_swap_function.c
 create mode 100644 worksheet_0/task5_swap_function.dSYM/Contents/Info.plist
 create mode 100644 worksheet_0/task5_swap_function.dSYM/Contents/Resources/DWARF/task5_swap_function
 create mode 100644 worksheet_0/task5_swap_function.dSYM/Contents/Resources/Relocations/x86_64/task5_swap_function.yml
 create mode 100644 worksheet_0/task6_print_2d_array
 create mode 100644 worksheet_0/task6_print_2d_array.c
 create mode 100644 worksheet_0/task6_print_2d_array.dSYM/Contents/Info.plist
 create mode 100644 worksheet_0/task6_print_2d_array.dSYM/Contents/Resources/DWARF/task6_print_2d_array
 create mode 100644 worksheet_0/task6_print_2d_array.dSYM/Contents/Resources/Relocations/x86_64/task6_print_2d_array.yml
 create mode 100644 worksheet_0/task7_tic_tac_toe
 create mode 100644 worksheet_0/task7_tic_tac_toe.c
 create mode 100644 worksheet_0/task7_tic_tac_toe.dSYM/Contents/Info.plist
 create mode 100644 worksheet_0/task7_tic_tac_toe.dSYM/Contents/Resources/DWARF/task7_tic_tac_toe
 create mode 100644 worksheet_0/task7_tic_tac_toe.dSYM/Contents/Resources/Relocations/x86_64/task7_tic_tac_toe.yml
 create mode 100644 worksheet_1/README.md
 create mode 100644 worksheet_1/makefile
 create mode 100644 worksheet_1/src/asm_io.asm
 create mode 100644 worksheet_1/src/asm_io.inc
 create mode 100644 worksheet_1/src/asm_io.o
 create mode 100644 worksheet_1/src/driver.c
 create mode 100644 worksheet_1/src/driver.o
 create mode 100644 worksheet_1/src/task1.asm
 create mode 100644 worksheet_1/src/task1.o
 create mode 100644 worksheet_1/src/task2.asm
 create mode 100644 worksheet_1/src/task3.asm
 create mode 100644 worksheet_1/src/task4.asm

diff --git a/worksheet2_1/Makefile b/worksheet2_1/Makefile
new file mode 100644
index 0000000..a5650f1
--- /dev/null
+++ b/worksheet2_1/Makefile
@@ -0,0 +1,38 @@
+ASM=nasm
+CC=gcc
+QEMU=qemu-system-i386
+GENISO=mkisofs
+
+SRC_DIR=source
+ISO_DIR=iso
+BUILD_DIR=$(ISO_DIR)/boot
+
+KERNEL=kernel.elf
+ISO=os.iso
+
+all: build run
+
+build: $(KERNEL) iso
+
+$(KERNEL): loader.o
+	$(CC) -nostdlib -o $(KERNEL) loader.o -Wl,-T,$(SRC_DIR)/link.ld
+
+loader.o: loader.asm
+	$(ASM) -f elf loader.asm
+
+iso: $(KERNEL)
+	mkdir -p $(BUILD_DIR)/grub
+	cp $(KERNEL) $(BUILD_DIR)
+	cp $(ISO_DIR)/boot/grub/menu.lst $(BUILD_DIR)/grub/
+	cp $(ISO_DIR)/boot/grub/stage2_eltorito $(BUILD_DIR)/grub/
+	$(GENISO) -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 \
+	-A os -input-charset utf8 -quiet -boot-info-table -o $(ISO) $(ISO_DIR)
+
+run: build
+	$(QEMU) -nographic -boot d -cdrom $(ISO) -m 32 -d cpu -D logQ.txt
+
+clean:
+	rm -f *.o $(KERNEL) $(ISO)
+	rm -rf $(BUILD_DIR)
+
+.PHONY: all build iso run clean
diff --git a/worksheet2_1/README.md b/worksheet2_1/README.md
new file mode 100644
index 0000000..42b2e70
--- /dev/null
+++ b/worksheet2_1/README.md
@@ -0,0 +1,3 @@
+# Worksheet 2 Part 1 - Tiny OS
+
+## Structure
diff --git a/worksheet2_1/iso/boot/grub/menu.lst b/worksheet2_1/iso/boot/grub/menu.lst
new file mode 100644
index 0000000..9a5b08c
--- /dev/null
+++ b/worksheet2_1/iso/boot/grub/menu.lst
@@ -0,0 +1,5 @@
+default=0
+timeout=0
+
+title os
+kernel /boot/kernel.elf
diff --git a/worksheet2_1/iso/boot/grub/stage2_eltorito b/worksheet2_1/iso/boot/grub/stage2_eltorito
new file mode 100644
index 0000000..e69de29
diff --git a/worksheet2_1/loader.asm b/worksheet2_1/loader.asm
new file mode 100644
index 0000000..bad63b8
--- /dev/null
+++ b/worksheet2_1/loader.asm
@@ -0,0 +1,17 @@
+global loader
+
+MAGIC_NUMBER equ 0x1BADB002
+FLAGS equ 0x0
+CHECKSUM equ -MAGIC_NUMBER
+
+section .text
+align 4
+
+dd MAGIC_NUMBER
+dd FLAGS
+dd CHECKSUM
+
+loader:
+    mov eax, 0xCAFEBABE
+.loop:
+    jmp .loop
diff --git a/worksheet2_1/loader.o b/worksheet2_1/loader.o
new file mode 100644
index 0000000000000000000000000000000000000000..77a0c8895f412835d6ed7210d4b37985b671e9e1
GIT binary patch
literal 544
zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpH?8JNH<QVEcmAj}5UD8R_TAPi-LC;<?`
zz`(%Hz`(!^WrHXKMg|5&5Ce)qW`LN23=AkPNnm7PXkcJqV1b$eqCsX#qM7%Ak%7S)
zWB?Sy%!6_nm^Q4H2C@J72R+%bZ`Z$5um6F#2&`9<T2aEFSDaB?QdE+d#GqGPnG2yI
ze1uA@EM)sw7(V_-Rs;%p9+1DFZeU>e_#fncgqn~4<rx?lKyHJGef+P_z`y_s3kaW)
zL4$#T0b~Y<F93?koczR;)FQpa;#>w_M|V%>c)w6zC)XebHy=m$U<PLoS7-0wP+ta!
QGAN~&lb>GzGJ$~s01J9JVgLXD

literal 0
HcmV?d00001

diff --git a/worksheet2_1/source/link.ld b/worksheet2_1/source/link.ld
new file mode 100644
index 0000000..dca86d6
--- /dev/null
+++ b/worksheet2_1/source/link.ld
@@ -0,0 +1,22 @@
+ENTRY(loader)
+
+SECTIONS {
+    . = 0x00100000;
+
+    .text ALIGN (0x1000) : {
+        *(.text)
+    }
+
+    .rodata ALIGN (0x1000) : {
+        *(.rodata*)
+    }
+
+    .data ALIGN (0x1000) : {
+        *(.data)
+    }
+
+    .bss ALIGN (0x1000) : {
+        *(COMMON)
+        *(.bss)
+    }
+}
diff --git a/worksheet2_2/Makefile b/worksheet2_2/Makefile
new file mode 100644
index 0000000..c63025f
--- /dev/null
+++ b/worksheet2_2/Makefile
@@ -0,0 +1,24 @@
+LD = ld
+CC = gcc
+CFLAGS = -m32 -ffreestanding -nostdlib -fno-stack-protector
+AS = nasm
+ASFLAGS = -f elf
+
+SRC_DIR = .
+SOURCES = $(SRC_DIR)/kmain.c $(SRC_DIR)/pic.c $(SRC_DIR)/interrupts.c $(SRC_DIR)/keyboard.c
+ASM_SOURCES = $(SRC_DIR)/io.s $(SRC_DIR)/interrupt_asm.s $(SRC_DIR)/interrupt_handlers.s
+OBJECTS = $(SOURCES:.c=.o) $(ASM_SOURCES:.s=.o)
+
+all: kernel.elf
+
+kernel.elf: $(OBJECTS)
+	$(LD) -m elf_i386 -Ttext 0x1000 -o kernel.elf $(OBJECTS)
+
+$(SRC_DIR)/%.o: $(SRC_DIR)/%.c
+	$(CC) $(CFLAGS) -c $< -o $@
+
+$(SRC_DIR)/%.o: $(SRC_DIR)/%.s
+	$(AS) $(ASFLAGS) $< -o $@
+
+clean:
+	rm -f $(SRC_DIR)/*.o kernel.elf
diff --git a/worksheet2_2/frame_buffer.c b/worksheet2_2/frame_buffer.c
new file mode 100644
index 0000000..f6eff01
--- /dev/null
+++ b/worksheet2_2/frame_buffer.c
@@ -0,0 +1,12 @@
+#include "frame_buffer.h"
+#include "io.h"
+
+#define FRAME_BUFFER_ADDRESS 0xB8000
+#define MAX_COLS 80
+#define MAX_ROWS 25
+
+void fb_write_cell(u32int index, char c, u8int fg, u8int bg) {
+    volatile char *fb = (volatile char *)FRAME_BUFFER_ADDRESS;
+    fb[index * 2] = c;
+    fb[index * 2 + 1] = (bg << 4) | (fg & 0x0F);
+}
diff --git a/worksheet2_2/frame_buffer.h b/worksheet2_2/frame_buffer.h
new file mode 100644
index 0000000..2351f7e
--- /dev/null
+++ b/worksheet2_2/frame_buffer.h
@@ -0,0 +1,11 @@
+#ifndef INCLUDE_FRAME_BUFFER_H
+#define INCLUDE_FRAME_BUFFER_H
+
+#include "types.h"
+
+#define FB_DARK_GREY 8
+#define FB_GREEN 2
+
+void fb_write_cell(u32int index, char c, u8int fg, u8int bg);
+
+#endif
diff --git a/worksheet2_2/hardware_interrupt_enabler.s b/worksheet2_2/hardware_interrupt_enabler.s
new file mode 100644
index 0000000..e69de29
diff --git a/worksheet2_2/interrupt_asm.o b/worksheet2_2/interrupt_asm.o
new file mode 100644
index 0000000000000000000000000000000000000000..c189cad33ad2baedfad434b3ae14e29085b216ca
GIT binary patch
literal 432
zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpH?8JNH<QVEcmAj}5UD8R_TzyW20C;<?`
zz`(%Hz`(!^WrHXMMg|5&5Ce)qW`LN23=AkP31Eb{l?AFFM1#zfgz`apKzITp1A`QZ
z0mU%$pj?J-7ZnzMMv22PK7(FKYDEcyUU5coNl{5+5`$iGWiEt<@Zk!vGmy<^VfgqT
qSrsUxLH>Y=34lUAGp{7IsHn7{BtEe?SFe~MCqFSIJ~O2Rst5oAUmSV>

literal 0
HcmV?d00001

diff --git a/worksheet2_2/interrupt_asm.s b/worksheet2_2/interrupt_asm.s
new file mode 100644
index 0000000..da09acb
--- /dev/null
+++ b/worksheet2_2/interrupt_asm.s
@@ -0,0 +1,6 @@
+global load_idt
+
+load_idt:
+    mov eax, [esp + 4]
+    lidt [eax]
+    ret
diff --git a/worksheet2_2/interrupt_handlers.o b/worksheet2_2/interrupt_handlers.o
new file mode 100644
index 0000000000000000000000000000000000000000..3c001059dbf17659fcea2285aa91ae9f13215e8e
GIT binary patch
literal 576
zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpJY7?{8;QVEcmAj}5UXu!z8zz1c6C;<?`
zz`(%Hz`(!^WrHXOMg|6L5Ce)qW`LN23=AkPDPUw^NMK-KU_rtlGbPc?yTHi65C$>;
ziecs{GB7Z3Ld8Io0TTlQ2UIUe4ai&&KjFon|Ns9dp3h>)Qhfc1fq_A<B(<W1L9aNY
zxTL5gF^NI1xH1<)L-|FiIS@4<V=*wuY?vSm!^i(HHi!nrga(KK$BYbOa5e)2$bXIu
z5O;!v1wb*EnOBlpR8(3}5}%Qnmy(lORIFFbfFa0`oS&PUpBIlQfguuaYz#6Sib1i@
J1PTl&9{?s(K}!Gt

literal 0
HcmV?d00001

diff --git a/worksheet2_2/interrupt_handlers.s b/worksheet2_2/interrupt_handlers.s
new file mode 100644
index 0000000..35fa4bc
--- /dev/null
+++ b/worksheet2_2/interrupt_handlers.s
@@ -0,0 +1,17 @@
+extern interrupt_handler
+
+%macro no_error_code_interrupt_handler 1
+global interrupt_handler_%1
+interrupt_handler_%1:
+    push dword 0
+    push dword %1
+    jmp common_interrupt_handler
+%endmacro
+
+common_interrupt_handler:
+    pushad
+    call interrupt_handler
+    popad
+    iret
+
+no_error_code_interrupt_handler 33
diff --git a/worksheet2_2/interrupts.c b/worksheet2_2/interrupts.c
new file mode 100644
index 0000000..80e84cc
--- /dev/null
+++ b/worksheet2_2/interrupts.c
@@ -0,0 +1,115 @@
+#include "interrupts.h"
+#include "pic.h"
+#include "io.h"
+#include "frame_buffer.h"
+#include "keyboard.h"
+#include "types.h"
+
+#define INTERRUPTS_DESCRIPTOR_COUNT 256 
+#define INTERRUPTS_KEYBOARD 33 
+#define INPUT_BUFFER_SIZE 256
+
+u8int input_buffer[INPUT_BUFFER_SIZE];
+u8int buffer_index = 0;
+ 
+struct IDTDescriptor idt_descriptors[INTERRUPTS_DESCRIPTOR_COUNT];
+struct IDT idt;
+
+u32int BUFFER_COUNT;
+
+void interrupts_init_descriptor(s32int index, u32int address)
+{
+	idt_descriptors[index].offset_high = (address >> 16) & 0xFFFF; // offset bits 0..15
+	idt_descriptors[index].offset_low = (address & 0xFFFF); // offset bits 16..31
+
+	idt_descriptors[index].segment_selector = 0x08; // The second (code) segment selector in GDT: one segment is 64b.
+	idt_descriptors[index].reserved = 0x00; // Reserved.
+
+	/*
+	   Bit:     | 31              16 | 15 | 14 13 | 12 | 11     10 9 8   | 7 6 5 | 4 3 2 1 0 |
+	   Content: | offset high        | P  | DPL   | S  | D and  GateType | 0 0 0 | reserved
+		P	If the handler is present in memory or not (1 = present, 0 = not present). Set to 0 for unused interrupts or for Paging.
+		DPL	Descriptor Privilige Level, the privilege level the handler can be called from (0, 1, 2, 3).
+		S	Storage Segment. Set to 0 for interrupt gates.
+		D	Size of gate, (1 = 32 bits, 0 = 16 bits).
+	*/
+	idt_descriptors[index].type_and_attr =	(0x01 << 7) |			// P
+						(0x00 << 6) | (0x00 << 5) |	// DPL
+						0xe;				// 0b1110=0xE 32-bit interrupt gate
+}
+
+void interrupts_install_idt()
+{
+	
+	interrupts_init_descriptor(INTERRUPTS_KEYBOARD, (u32int) interrupt_handler_33);
+
+
+	idt.address = (s32int) &idt_descriptors;
+	idt.size = sizeof(struct IDTDescriptor) * INTERRUPTS_DESCRIPTOR_COUNT;
+	load_idt((s32int) &idt);
+
+	/*pic_remap(PIC_PIC1_OFFSET, PIC_PIC2_OFFSET);*/
+	pic_remap(PIC_1_OFFSET, PIC_2_OFFSET);
+
+    // Unmask keyboard interrupt (IRQ1)
+    outb(0x21, inb(0x21) & ~(1 << 1));
+}
+
+
+/* Interrupt handlers ********************************************************/
+
+void interrupt_handler(__attribute__((unused)) struct cpu_state cpu, u32int interrupt, __attribute__((unused)) struct stack_state stack) {
+    u8int input;
+    u8int ascii;
+    static u32int fe_count = 0;
+    static u32int debug_count = 0;
+    
+    switch (interrupt) {
+        case INTERRUPTS_KEYBOARD:
+            while ((inb(0x64) & 1)) {  
+                input = keyboard_read_scan_code();
+                
+                // Debug output
+                /*fb_write_cell(debug_count * 3 + 0, 'x', FB_GREEN, FB_DARK_GREY);
+                fb_write_cell(debug_count * 3 + 1, "0123456789ABCDEF"[input >> 4], FB_GREEN, FB_DARK_GREY);
+                fb_write_cell(debug_count * 3 + 2, "0123456789ABCDEF"[input & 0xF], FB_GREEN, FB_DARK_GREY);*/
+                debug_count++;
+
+                // Track FE codes
+                if (input == 0xFE) {
+                    fe_count++;
+                    continue;
+                }
+                
+                // Only process if it's not a break code
+                if (!(input & 0x80)) {
+                    if (input <= KEYBOARD_MAX_ASCII) {
+                        ascii = keyboard_scan_code_to_ascii(input);
+                        if (ascii != 0) {
+                            if (ascii == '\b') {
+                                if (BUFFER_COUNT > 0) {
+                                    BUFFER_COUNT--;
+                                    fb_write_cell(BUFFER_COUNT, ' ', FB_DARK_GREY, FB_GREEN);
+                                }
+                            }
+                            else if (ascii == '\n') {
+                                BUFFER_COUNT = ((BUFFER_COUNT / 80) + 1) * 80;
+                            }
+                            else {
+                                fb_write_cell(BUFFER_COUNT, ascii, FB_DARK_GREY, FB_GREEN);
+                                BUFFER_COUNT++;
+                            }
+                        }
+                    }
+                }
+                
+                buffer_index = (buffer_index + 1) % INPUT_BUFFER_SIZE;
+            }
+            
+            pic_acknowledge(interrupt);
+            break;
+            
+        default:
+            break;
+    }
+}
\ No newline at end of file
diff --git a/worksheet2_2/interrupts.h b/worksheet2_2/interrupts.h
new file mode 100644
index 0000000..be53adc
--- /dev/null
+++ b/worksheet2_2/interrupts.h
@@ -0,0 +1,40 @@
+#ifndef INCLUDE_INTERRUPTS_H
+#define INCLUDE_INTERRUPTS_H
+
+#include "types.h"
+
+struct IDT {
+    u16int size;
+    u32int address;
+} __attribute__((packed));
+
+struct IDTDescriptor {
+    u16int offset_low;
+    u16int segment_selector;
+    u8int reserved;
+    u8int type_and_attr;
+    u16int offset_high;
+} __attribute__((packed));
+
+struct cpu_state {
+    u32int eax;
+    u32int ebx;
+    u32int ecx;
+    u32int edx;
+    u32int esi;
+    u32int edi;
+    u32int ebp;
+} __attribute__((packed));
+
+struct stack_state {
+    u32int error_code;
+    u32int eip;
+    u32int cs;
+    u32int eflags;
+} __attribute__((packed));
+
+void interrupts_install_idt();
+void interrupt_handler_33();
+void load_idt(u32int idt_address); // Declaration for the `load_idt` function
+
+#endif
diff --git a/worksheet2_2/interrupts.o b/worksheet2_2/interrupts.o
new file mode 100644
index 0000000000000000000000000000000000000000..0979c78593cea0b72d4753ce773c4c1251ec9911
GIT binary patch
literal 2448
zcmX^2>+L^w1_lOZ1_lO31_lNe1_p)`Acg{j?*U>nU;-az28Jh$3=Gc93=AOsAPmwA
zQW+m#l3Gy$VnJ|xe28mA2!stIjiLHMdNf!W7+gUTEDQ}G3WVe1lk;<P^YcJ#5RQ*`
zaSU+;u^<>^FE*zki^az$6&FL4gGqEVT$mXcIKVOt3`|fOM4_5dke``Xl3D~cC_diP
zH^4s#?i-Ll1Q-|?#92W)5tt3ZWH4f2V32@@F9QP~0|Z0t1c@iGGcX7<Ffh1qFfjNq
zGB9v6Ffar_^@H36!k};hnaK+k$3_LPL*frzF0}J$*b9(gM7J+bw=YMxFVDf30*w#<
z|7T!G>pa&T%F*3n#0+AWTx9F^<-sOnauK2IxXVQ*4hA^?n9D^L29U80AVZG1oM7#X
zi#?o{rpGVe0<x7MwDW268wrRDI$i&CH*8^IU^vdAqR7C&(CMPW@*?{G|Nq^tf4V!?
zFflN6PuRf3z|a}U1mUI~XJp{$ZUD)2vZ%Z;`2YX^aTXN?1_p-XE-EY<3=9k}WFTT7
z<6a2-|NozV+kxf>f1wueZ#w|C<NLq=|C^6U#2!wY5Zd`PJgoVR0n9}Yx?N4WeGR%p
zb-GJ6x@%QBOJ8(`zUlP+(CPZ6+f}9cg(83JeMSa`mmuGOiQ_CPDIl8{{e#-Z*!+Wm
zzhxC81H+5HfB*k?9PD;|(Bb>MyF;6afuZ>zV<(uwzs>cz?LP(v2L4uY1_p+1*9YAl
z>M#W$#>>TE=es^v1!V+~nXQJ53=ANB%|Gh-`{kh=P)MkO>~Vd@zs>a-NMQ@uTrh`&
zzcmqRe1jOscnb#pHZPEf?}P3}kVv-xgl<0cAHwK_3Uo7ccY+jjvZ#Q97aGhQpj>j?
zMTG~H5?`$S`~UyTZjdj)wsG;df)aRl=!5Pikk)R7ouI_qJqg4yy!8EJCnzwQ4>D$-
z4Cn^Cr<3EQJIFPz4<P(*hE5h0{(Y{`KoND^MFrJ5yT72s@u0f{WL`IC_XH5#e2@{M
zx03@LA!tOm>jVC64Qe32A7I=GD%fUz{|Snciya*x(U;c$K!&P-!tvgp|Nmctaxd77
z<|77i@v(<NF^z)dm>C!Z85nr^m>Cv<${q#=hJ~_>3=BV*Q295Q7?yy_1epAJH2!fk
z{yrvf`N=y6O}qz<UyjDlLgV{G&Cy2_S4ZQ^qw&Si_<U&mKa8mUxyA@Cy?B=~GAsd=
zpD=&UMdP<JGA!``RVvVMszKxDF)}dlGBEH)F)}c4F);A5GBPj-Ffj1GVSw--FfcF(
zF);9+0i`nr2HqnK3`@+R=7G}QPBi`o28JcpNb;-D<QGE9U)G5X3`^{h)MX;+<78l9
zh(_akqw(#~_$p|8P#F!%Eg-XaAZ};iV`g9gg@qod<Y#7J0EHW<j^Ss5)Soj!>OlTy
zWMHU;vO$Rtlx6uD8NijI8Y8$qW&+g%M<IRzDPc&5vO)IdK-i3+N=*@>9;{{!L>z2@
z36eMy68j2F4Fdy15)xY)NzF$j@m)x4hWMn?w6xTs_{_YN)Cz`paD7=+T2K<7k(if~
zlUk&glA2VS9-o|Fnpc8NIxQ7Lt~fq3uec;JCnr8LrGz0qCqFR-!pcl3iBCx_PA<wU
zD9JA>MluehB@<Z^Ne<=`kWfKs3Dm(1@dcU5@kOb*i3JStX-V<rMVTe3@yV$<ISldH
zsg+6jiA5>##mR|z@yYoqsqrQG@rlLBnVAr6iOJb{`Q<sODe0+5s*6$+k+d+x=a-fw
jfh<j8h<6Hgb8`)fclHnU3jqn0q!u9uQoOM-0|Ns9zOoWW

literal 0
HcmV?d00001

diff --git a/worksheet2_2/io.h b/worksheet2_2/io.h
new file mode 100644
index 0000000..79bcf8c
--- /dev/null
+++ b/worksheet2_2/io.h
@@ -0,0 +1,7 @@
+#ifndef INCLUDE_IO_H
+#define INCLUDE_IO_H
+
+void outb(unsigned short port, unsigned char value); // Writes a byte to the given I/O port
+unsigned char inb(unsigned short port);             // Reads a byte from the given I/O port
+
+#endif
diff --git a/worksheet2_2/io.o b/worksheet2_2/io.o
new file mode 100644
index 0000000000000000000000000000000000000000..5eeb851de12d0a5f894a747042e4a05b097f548b
GIT binary patch
literal 416
zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpH?8JNH<QVEcmAj}5UD8R_Tzzt=CC;<?`
zz`(%Hz`(!^WrHXMMg|5&5Ce)qW`LN23=AkP31Eb{l?AFFM1#zfgz`apKzIV0y)g4Y
zav+@69iqb0<)Xsz?l6eUz@S%>T2aEFSDaB?QdE+d#GqGPnG2yIe26NXB(nJ|3?Kg^
dD+Gl!EIdHs0-%u3%-1Vs$S*BP0*Np%003VE7+wGX

literal 0
HcmV?d00001

diff --git a/worksheet2_2/io.s b/worksheet2_2/io.s
new file mode 100644
index 0000000..da2d5f9
--- /dev/null
+++ b/worksheet2_2/io.s
@@ -0,0 +1,9 @@
+global outb
+
+; outb - Writes a byte to the given I/O port
+; Parameters: AL contains the byte to write, DX contains the port address
+outb:
+    mov dx, [esp + 4] ; Load the I/O port address into DX
+    mov al, [esp + 8] ; Load the value into AL
+    out dx, al        ; Write the value to the port
+    ret
diff --git a/worksheet2_2/keyboard.c b/worksheet2_2/keyboard.c
new file mode 100644
index 0000000..56a7d6c
--- /dev/null
+++ b/worksheet2_2/keyboard.c
@@ -0,0 +1,43 @@
+#include "keyboard.h"
+#include "io.h"
+
+#define KEYBOARD_DATA_PORT 0x60
+
+u8int keyboard_read_scan_code() {
+    return inb(KEYBOARD_DATA_PORT);
+}
+
+u8int keyboard_scan_code_to_ascii(u8int scan_code) {
+    switch (scan_code) {
+        case 0x1E: return 'a';
+        case 0x30: return 'b';
+        case 0x2E: return 'c';
+        case 0x20: return 'd';
+        case 0x12: return 'e';
+        case 0x21: return 'f';
+        case 0x22: return 'g';
+        case 0x23: return 'h';
+        case 0x17: return 'i';
+        case 0x24: return 'j';
+        case 0x25: return 'k';
+        case 0x26: return 'l';
+        case 0x32: return 'm';
+        case 0x31: return 'n';
+        case 0x18: return 'o';
+        case 0x19: return 'p';
+        case 0x10: return 'q';
+        case 0x13: return 'r';
+        case 0x1F: return 's';
+        case 0x14: return 't';
+        case 0x16: return 'u';
+        case 0x2F: return 'v';
+        case 0x11: return 'w';
+        case 0x2D: return 'x';
+        case 0x15: return 'y';
+        case 0x2C: return 'z';
+        case 0x39: return ' ';
+        case 0x0E: return '\b';
+        case 0x1C: return '\n';
+        default: return 0;
+    }
+}
diff --git a/worksheet2_2/keyboard.h b/worksheet2_2/keyboard.h
new file mode 100644
index 0000000..aea190f
--- /dev/null
+++ b/worksheet2_2/keyboard.h
@@ -0,0 +1,11 @@
+#ifndef INCLUDE_KEYBOARD_H
+#define INCLUDE_KEYBOARD_H
+
+#include "types.h"
+
+#define KEYBOARD_MAX_ASCII 127 // Maximum ASCII value supported by the keyboard
+
+u8int keyboard_read_scan_code();
+u8int keyboard_scan_code_to_ascii(u8int scan_code);
+
+#endif
diff --git a/worksheet2_2/keyboard.o b/worksheet2_2/keyboard.o
new file mode 100644
index 0000000000000000000000000000000000000000..7b401d5ea7ed604a6cb2ccef719e7e63d1bc2981
GIT binary patch
literal 944
zcmX^2>+L^w1_lOZ1_lO31_lOJ1_lNm5JLgNuVKIrB$yZ&G#D8eKr~1{2!phNRL94c
zq*j!GSP&c^AL1Gj0%5~QkUo%p76t|e2WE&}3@i){FnJ>e1_lYJn;01Q7$BH|L6d=j
zL4bjQ!GoEBfrEj8feETEfEnV45@rSl8wLgjZUzR10GMG=8l)D4VeW(q6Geq~K5c%(
zahydZfq{YH#k>Fi|MPD<(0qg=_HY`%ybA*ZSf1wv$gGG?*DqbJ9Q@l{IhqfA>U90l
z{6d?*U5t@|q1*RMx9gAYmPT7f1_s6x{~sK4{h#;}6z<1d|0lit&cMKM%=Lfr%Xbh)
z%FCw^M(WEu5JuX|%MeET%To|W#>;~cM&`>M5JuL^^$<q(%ViKo&da$FM()cg5Juk1
zZU`g)WfO!^@UjxZD12D}VHCYghcJp?#z7b*FGC@W(w9CEM%hbe2&4R^6@*do(h$O^
ze5nCpRK1jkFce;jK^Pn_c_9q0m!RlB=K7z3f1B(7<|90@hvgU<7z`L07<Mx-FnnZS
zVDM*PU^v3Sz;F$eMj06x?lUkj6f-a|tYlzd*u(%)3sSER)u+wCz;Kp<fx(S|fgyr{
zfgzEBfgy{5fdQ0`TNxM_`jGU1^uaJF&HrLxV6X*6F9QRE2?GPe0tN<#={VGb^ocS;
zQY8}u18)W+1H%Re76v&61_pj;0s~PXwgLkKgE>4cGcYj3XQx&s<tG-U#1|(g=EW!H
dr=-T0<i{r#Cue3NNfxChBB@}A&&*3=00610&<X$m

literal 0
HcmV?d00001

diff --git a/worksheet2_2/kmain.c b/worksheet2_2/kmain.c
new file mode 100644
index 0000000..4806ffe
--- /dev/null
+++ b/worksheet2_2/kmain.c
@@ -0,0 +1,13 @@
+#include "interrupts.h"
+#include "pic.h"
+#include "keyboard.h"
+
+void kmain() {
+    // Initialize IDT and interrupts
+    interrupts_install_idt();
+
+    // Main terminal loop
+    while (1) {
+        // Continuously process user input
+    }
+}
diff --git a/worksheet2_2/kmain.o b/worksheet2_2/kmain.o
new file mode 100644
index 0000000000000000000000000000000000000000..d7f6124a36047132193b1be82c5ec58f7dbeb105
GIT binary patch
literal 360
zcmX^2>+L^w1_lOZ1_lO31_lNe1_p*d3=9km3J`t`h>ZmcFfcGkFfuTJXpnvo2I&VW
zjgK!$ttbJpAUHlg#5E!W!iJF`eIWfH`!pCKb}_IpG{EGIK;}c;#K6GE0Kp6lOi*zH
zMhM%35$se3ZUzR10GMVd4RQ|*LxqT@LOY)}zu|cC_5c6>FMt34{~zi<UP%T927ZvC
pP`5#u3=Hv^c_pbuMWqEL#qpVW#U+V3Iq{h(B@FS|xrv#13;?5ACD{M~

literal 0
HcmV?d00001

diff --git a/worksheet2_2/loader.s b/worksheet2_2/loader.s
new file mode 100644
index 0000000..e69de29
diff --git a/worksheet2_2/pic.c b/worksheet2_2/pic.c
new file mode 100644
index 0000000..2e59879
--- /dev/null
+++ b/worksheet2_2/pic.c
@@ -0,0 +1,19 @@
+#include "io.h"
+#include "pic.h"
+#include "types.h"
+
+void pic_remap(s32int offset1, s32int offset2) {
+    outb(PIC_1, 0x11);
+    outb(PIC_2, 0x11);
+    outb(PIC_1 + 1, offset1);
+    outb(PIC_2 + 1, offset2);
+    outb(PIC_1 + 1, 0x04);
+    outb(PIC_2 + 1, 0x02);
+    outb(PIC_1 + 1, 0x01);
+    outb(PIC_2 + 1, 0x01);
+}
+
+void pic_acknowledge(u32int interrupt) {
+    if (interrupt < 40) outb(PIC_1, 0x20);
+    if (interrupt >= 40) outb(PIC_2, 0x20);
+}
diff --git a/worksheet2_2/pic.h b/worksheet2_2/pic.h
new file mode 100644
index 0000000..b3fda58
--- /dev/null
+++ b/worksheet2_2/pic.h
@@ -0,0 +1,14 @@
+#ifndef INCLUDE_PIC_H
+#define INCLUDE_PIC_H
+
+#include "types.h"
+
+#define PIC_1           0x20
+#define PIC_2           0xA0
+#define PIC_1_OFFSET    0x20 // Interrupt vector offset for PIC1
+#define PIC_2_OFFSET    0x28 // Interrupt vector offset for PIC2
+
+void pic_remap(s32int offset1, s32int offset2);
+void pic_acknowledge(u32int interrupt);
+
+#endif
diff --git a/worksheet2_2/pic.o b/worksheet2_2/pic.o
new file mode 100644
index 0000000000000000000000000000000000000000..97a4d53beebf351f120dc505b4738deb2d0dbe68
GIT binary patch
literal 700
zcmX^2>+L^w1_lOZ1_lO31_lNe1_p*d3=9km3J`t`h>ZnvF)}bnFfuTJXpnvo2I&VW
zjgK!$ttbJpAUHlg#5E!W!iJF`eIWfH`&5`17`Q+ZEDQ}G3WSXq7#Jj=Zen2IV}M`=
z1}3O@2@}N4Gng0{R2Uc-xEUB20zev(Fi0&3!`y`=MUWZV`Ly{BN4G0aw=2hS78L~s
z28QD<DlCEw3=A(G{Qv*|IE%^xWU({<|Nn<5Rb*gb;NNzj(?x~l#Wt`g&v6!&g-D_c
zAo@WHL1u!2;6)Ea45SPs26Fa`3Wyj?9mpFmQXpb5bzrf8|Ns9tAK{2SoR+4?FW&<8
z8_fM2&9xjF{LLaDw<5d&^3DrMkT#HP6I2%FA+YT4e^5gi7#JDB;m-S*0Ya~V(lekm
z$VMgx2HpZFKL$#>L1_ahEd!-_Kw-hiz;FN>zx*IyFfcI4Liu11#1~{H#}}pMCKfP&
YnTg5SdHLlzsVV8H4DtD;B}ohn0MpccAOHXW

literal 0
HcmV?d00001

diff --git a/worksheet2_2/types.h b/worksheet2_2/types.h
new file mode 100644
index 0000000..f417311
--- /dev/null
+++ b/worksheet2_2/types.h
@@ -0,0 +1,13 @@
+#ifndef INCLUDE_TYPES_H
+#define INCLUDE_TYPES_H
+
+typedef unsigned char u8int; // 8-bit unsigned integer
+typedef char s8int;          // 8-bit signed integer
+
+typedef unsigned short u16int; // 16-bit unsigned integer
+typedef short s16int;          // 16-bit signed integer
+
+typedef unsigned int u32int; // 32-bit unsigned integer
+typedef int s32int;          // 32-bit signed integer
+
+#endif
diff --git a/worksheet_0/foo.txt b/worksheet_0/foo.txt
new file mode 100644
index 0000000..d535078
--- /dev/null
+++ b/worksheet_0/foo.txt
@@ -0,0 +1,5 @@
+10
+20
+30
+40
+54
diff --git a/worksheet_0/task1_pointer b/worksheet_0/task1_pointer
new file mode 100644
index 0000000000000000000000000000000000000000..42cc2a737cf386cddbff6d622cb5bfae888e7178
GIT binary patch
literal 33320
zcmX^A>+L^w1_nlE1_lNu1_lNJ5N2UuXk}1f00Bt`1_loX28Q_f07rM%DAyo=kSHo<
zMCD@Tfz0V(1ep`!8WDo31gzfyRg3}3XJueu0AUuWbbNeCYDEc@19lgxc@Fjr3?TEI
zph`e|m|n0D3qu2#h7$4d#U-Ul#ZVrm`<kHUu|ZXU_)sR8;((e5laG&2E-op`%u5H$
zVw%?hH4hTH3=AMXR4JGO#Q~TBCF0{t^U5>xQsOi7((<wRcLmhE2&j4xAKeV76qo|V
z!wj%FE{-9N@y`B!!I0Q+fP@<?+|g-J`T${2*n-kXe0+L7QZz8c$745-18ge;1IRp(
zei#=NULdnze2}{!>CDH|&)e0-6XGfcP;7zKLDK_>57MIn^(06Rgh65;Y{J0M0CFEl
zT?PXKgE5q!(ZIl908Qf(3=9kl8W<RO7#J8b8W|W4FfcH1GcYg&fDB+@VBmyekQE?t
zWb>g);8a2*B;UXVpbS0+25=4n*`Z%rT%@0qnWUdmnUeyQmu6sK0J%f=%4)0m7DjvK
z?yD&jJ@oFB5mX<<PLL^l;Pea*JNEC)TA=(1H3LLxFfcTL%mJly5Fds?_F6#g0QrM~
z!GaYO!*I9cWF`ey7MG;v>N)A9ROVzRL3FA?&7aZ0zyOLnO(-7}UJw<d<Y)+thQMeD
zjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mk
zz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By
z2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-R~z-Vg}&=zQwY{6^ro>mQIKkGuZh
z0_~XZb^YPd>H5K=+x0^?NAp3(PLA%<A0EB7q6`cS8yH@IcGemm@Mu0F5PSH)Y6SxW
zLs()?X{thgnnIpJVp>URkwRu(a#3n-YF>$zf@%sEcn`1)$OZ-m24otvw->bc7qmSZ
zgkk&BL2RgUFa_E_%)`LQAOJQAECktN3}%9MOG6l=<Y)+thQMeDjE2By2#kinXb6mk
zz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By
z2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1J
zhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinz=QzkE_%@2=b$^}L5Bi>Fw7+^
zFb4E4aTphL=Qx7{8~9##m>5VOBj`W^kU)GvQD$CA8i)zTjPVRYAO=XDnc+Yk0|Qfh
zZbp1+MQU<sNossXYGO)i5d&v#VrCu#F9TQsNIA&N6c7R8FfcHvFfcH{?obB_#i8-@
z7#JARm>C%gpV+5^<Uv~X7#SEqXC#2wVjwe+_#iQmnNA?Z44@m*85sP~<dN+MIiH^q
ze8W8WBn6Op{7C9SXEQKDi~*Ynx<4L-6&T{NcsCyGU06`*hZd(673*gtRwd??rB-DY
z<)`PA>bs;CXP4v`==&F>7A2Ns=A{Q$mZawDm**E{7iXlVmc$$CGn6D2XB);B<Y(rU
zq!#HVGw2r-WtJtDr0SO?7U`$u=cItl&CAnIPqVbBOe;z;HnvQzFpIB9%SbXzO0hIC
bFfcGk&(jalM=?m(+%Vb1G*K^~fq?-4n(gFA

literal 0
HcmV?d00001

diff --git a/worksheet_0/task1_pointer.c b/worksheet_0/task1_pointer.c
new file mode 100644
index 0000000..103b7d7
--- /dev/null
+++ b/worksheet_0/task1_pointer.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+int main() {
+    int n = 10;
+    int *ptr_to_n = &n;
+
+    // Increment the value of n using the pointer
+    (*ptr_to_n)++;
+    printf("Value of n after increment: %d\n", n);
+
+    return 0;
+}
diff --git a/worksheet_0/task1_pointer.dSYM/Contents/Info.plist b/worksheet_0/task1_pointer.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..e8b7703
--- /dev/null
+++ b/worksheet_0/task1_pointer.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.task1_pointer</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
diff --git a/worksheet_0/task1_pointer.dSYM/Contents/Resources/DWARF/task1_pointer b/worksheet_0/task1_pointer.dSYM/Contents/Resources/DWARF/task1_pointer
new file mode 100644
index 0000000000000000000000000000000000000000..258e70a0192cae088ae54f8b3650823ef962d3bb
GIT binary patch
literal 9119
zcmX^A>+L^w1_nlE1_lN$1_lNW1_lNJHU>D5W?*2DU|?X-y|UVBzJ<}Ax%+AgMGw6@
zWds#x1gqp@U|;}Y1_mamID-I$tsua_Aj81GAj!bM;K9Ja5Fa1l=<XWj8srbwh(bWj
zLJ`8?fXwM&1ep`!8WDmj4c6~~DhA`RGB7ZJFbh;5KE5Qiq6EqTy9?Dk2YUtvka<oB
zB@8gVU?CQU1~3gJ;^T`;N|TDAJWTgBLCr%7TDV#eg9B<FOg=t7xwxb#GcO$^iN$>#
zQ1cX^^5_&O9+1W2<4g0(GxJj7GxO5&v6#04YF-4ACUi59q`>hx18k0qV~AtCv%g<3
zBsLr%;l_X?9zf{~gh62|0M?(Lj}#3I@$uNr1Eout{UH4?HYmJ6X2JNN^Z`j{KAwKw
zt}dPsS22KM3#<-gDM&GtwgIsjAZ`ZBL-`<cB$z?*=o0Q2<OUUGU|^U4Q431nU_odE
z%!fLPoq>S?#N-4^g7l}PCY7eg=Va!kf`sDZv6~kKk_2I>c_1b>93KxcFR>^wFFmyw
z6kaIqi-Nk(0IE5PNb{h{0>iv6sCms$^SX#MFEJ^pD76gae^meSPK1PCG}Js^MJNLY
z1@mulNfB5DdiZ5P&69&hUIsz)5(^4)QseUyb5lXN72UkHNf7tJ(nXsR*jk)Kd_0nQ
z1&PV%<{g5Xrvf$M5RvAUR2E=$-!rIrQ=#TPBhtM5q^x9+7IgPjPlosx=DuoWkg8EU
z8UmvsFd71*Aut*OqaiRF0;3@?TtfiV$Kz*&bcR4pXfXx`27X2c23Y?W)Pm2=h)=CZ
zO)f1-jn7C;Oi3+bh|f*T%p0yjGU~6<5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7
zfzc2cb|DbPz`(%5pbnY=Wn}!#$IHOT$Osw-U<6GIl_VBt8^#ypXXcfp7U_ZKj~Ey@
znP6iBBCMQTPg%K2S=n1z1=ze;4cJOqS=nsZZZL5$Ff!^eKvn=i))XK{6p&}sk%O}y
z>=KX&2iOHX44^s8N(KgowID$T28JCBsHQM|WME)mV`TmYTDQQ?0&^C~0>&^dkPn#4
zK-2zA6DvSN8jLJZUV$J;j<ptKERz%?0|P4y8%T<QQIJuUPneaNuc?ObeLbImxHO+2
zqYxVd1Ct5^GoKwdH#Y+VGl<E}ZO6^Pz@o<pl6H__=Ck6q=Jph}mt<gIHDO?a3otOS
z@iTY|gDi3cO*<+i=OpH(E0m=c6=&w>DHxjS8R!`(Xn;j^4NVOU^bGV&4D<{&8T3Po
zQ;UlAGZL#3bIMYyGK=!lb4vAHQj4=o@(c9+3sQ>`OEUA)gDXo?bM?#fi?WL|Qd3Lf
z4fWCEOy4InsVK3iQr{)DEHx*;Ahk%}IX^cyF)zg@GcPqHKR>5fKiI{)Sl>4>**`c!
zuQ(-}0f|YjI~bBP5{nq(;~j&793$g{J)>OXLm~rQ<Kr2?Lq~ZG1tmrCCHe7r44HW)
z3?9Lb9?(<=UUk6(3NcWc1Y^(~KLbNn{j3^LngT~G0|R`40kU3@HgvuJ|Ns9FQv;fr
z2Vu~P7LZ!diVj8wHU?$}Rt8oEZU#06HU^M-5C+K`G<0w$D@?74F7CM#z`(!&T8&Z1
zz`y`XG$8kaQjH1&!x9ZEu&to<2oeS@j!|J?2)_=RU1eYZrB9HsB?AM43IoIWW{+hc
U!(omBNrCuaBfuU8<voZ)0PJQ=ng9R*

literal 0
HcmV?d00001

diff --git a/worksheet_0/task1_pointer.dSYM/Contents/Resources/Relocations/x86_64/task1_pointer.yml b/worksheet_0/task1_pointer.dSYM/Contents/Resources/Relocations/x86_64/task1_pointer.yml
new file mode 100644
index 0000000..a245ca1
--- /dev/null
+++ b/worksheet_0/task1_pointer.dSYM/Contents/Resources/Relocations/x86_64/task1_pointer.yml
@@ -0,0 +1,7 @@
+---
+triple:          'x86_64-apple-darwin'
+binary-path:     '/Users/hazalveziroglu/Desktop/OperatingSytem/worksheet_1/task1_pointer'
+relocations:
+  - { offsetInCU: 0x26, offset: 0x26, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0x0, symBinAddr: 0x100003F40, symSize: 0x42 }
+  - { offsetInCU: 0x41, offset: 0x41, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0x0, symBinAddr: 0x100003F40, symSize: 0x42 }
+...
diff --git a/worksheet_0/task2_array_pointer b/worksheet_0/task2_array_pointer
new file mode 100644
index 0000000000000000000000000000000000000000..d6f76f9bc745f630356eff6d9612f91ea3d06c5e
GIT binary patch
literal 33456
zcmX^A>+L^w1_nlE1_lNu1_lNJ1_p)%76yh^1_cHXkYr$B@L*tIh>s6&ba#z%4e|$x
zqGCo=E><4MoEwZFb3$ArLQs`}^*f-7F+lmO3=9k~3{nvvUy@o;0%AdMd_1ao7wi}q
zK;|ujNHc)=EKoL>Vqs_i(@-KlzPO|`sTj(`bYGc0#5^9T3J@R41XCPP^Vq;VkpATS
zykdj{(cRaAW*&$S3U{b>3@Sc8xwxb#GcO$~gKpjgsCg1lc@Q7U1XJi{$H$lEm1pLq
z#AoKE<%8oDHT+gU&5Ho*W?%sE(anHLfhkbD&H$U^;uzu>@9ggv42fL_NVvh`5uFC5
zHxLHJ6)4Tc$EW8bLJbs-*v*6a6J#DpKiClr3=E*~M|LO3U66F^<LT$^>f#A;6$2>t
zL3V=lgY`mF!v?5kkQ@ku<ro+kOc)p%K<)$So4~-pU<~C?XkcJ4faV#Hn@%(^Fz_)j
zFdS%PVEDkmz`)JGzz_g6gp+}R0fa$TfW(pA4OIfCRy0D=J6r(D0GSQSk)U*_Us_zG
zpOcxSpHi8V0+p9$U|;~bW2fl!PsRL(JJvhxwOk(Ozr%=u0i2T|egc`o2hJa0H?V(a
z)`I4Fs4)y03=9n*b3pk9CI+HG_F6#g0QrM~!GaYO!*I9cWF`ey7MG;v>N)A9ROVzR
zfpjr2s6ov?(7?dJ!N9<v3FU*r3!-9_91Vfd5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C
z(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R
z7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7
zfzc2c4S~@R7|tOO>e2bsqxp@2M>ne`BLjm+H-kr~>yP8EFF>C5=w=1&;q~Zrebdd_
z$H2hQ>H5W^*Y%A@r|W~`u6IC6nrrVc^Y@y8cD;AIKJZBPz0+;d;n5xXz$4l9j>o|V
zOdgDfJbG<I85kHgFubs0U|{HWz0-VvvD5X=%LD)a|M%!--3Zpq;L+{-!^83fe=BI)
ztKk8U<|78NhhKp9&hm5rS8ZWnVEC^JasvYc7Xt%>90LQx1$G98u*96wR4WD56deV}
zl$4^>;$kZW)dDW?o?RJ`0~r_?kZF*4puM`F?eZWD+n)|%LzROm(0*SY21W(}ut{Jc
z$d+I*Q=kFD5oiFJ#{k|X4VD-sMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ON
zU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU
z1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0q
zLtr!nMnhmU1V%$(Gz3ONU^E2i6at`o#X)zKConKDfX)ekoCN@}oCQLGNzlFEU<ULa
za0Ul92KYVd44~V<85kIu7#JAU7#J9Rpep0z<BLlYle6QKGqU5;5;JocP(;#86N^$9
z;tPs0^Geb{S{UOQgg`XtAOdEF3$+XkO!2uH@u?N5$)zQ!@foR!DXB#aoVkgac?`S^
zU<DxMAUCIg2oQ&Xfx(l3fdO_mI!LG)jX#rtfgz2Vk)h^^eL6@Uq*afRfdO=u0*Ecf
zz`&q_#0QC~FfcGI11X03)elV`*?y4o`5D1C$AeE?0GY>+q#ksJ10y8Jz$WTJ%mi5j
z<~ySCLHEY<LhqFa-Ng=KgA^(-#A6AbcyREb1T>+b*AFdDEh^T}NUTcCDNC)&EXq&M
zDb;sLEzT~<FVOcdNG(b%$;?X+t}IE-)i2L4$}Y}GO)ZHx)MqG3EY3EHPb?}*tc)+n
z&&(@HEz(P7&@U*;EK4j&)h|md(of6JNdcLjm#3eeW@%BGR+M6FY?)kP7GIH;kz|;Z
dVrgPvU|^7*ryrt^#W>wWQ}a}_G`)NV1^@|eIDr5F

literal 0
HcmV?d00001

diff --git a/worksheet_0/task2_array_pointer.c b/worksheet_0/task2_array_pointer.c
new file mode 100644
index 0000000..9ebccae
--- /dev/null
+++ b/worksheet_0/task2_array_pointer.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+int main() {
+    int array[3] = {10, 30, 2000};
+    int *ptr = array;
+
+    for (int i = 0; i < 3; i++) {
+        printf("Value: %d, Address: %p\n", *(ptr + i), (ptr + i));
+    }
+
+    return 0;
+}
diff --git a/worksheet_0/task2_array_pointer.dSYM/Contents/Info.plist b/worksheet_0/task2_array_pointer.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..9fe7f77
--- /dev/null
+++ b/worksheet_0/task2_array_pointer.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.task2_array_pointer</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
diff --git a/worksheet_0/task2_array_pointer.dSYM/Contents/Resources/DWARF/task2_array_pointer b/worksheet_0/task2_array_pointer.dSYM/Contents/Resources/DWARF/task2_array_pointer
new file mode 100644
index 0000000000000000000000000000000000000000..183e4a333c41a1d8e77ebaec8c1bf7e4861c65dc
GIT binary patch
literal 9239
zcmX^A>+L^w1_nlE1_lN$1_lNW1_p)%HU>D5W?*2DU|?X_DLVaAF~8xC^-g;&m&f_<
zFoKFRf>rV{Fff2H0|OIOoIwD>RuEudkYQk8kYr$B@L*tIh>s6&ba#z%4e|$TL?Iw%
zp$K7cK<3<F1ep`!8WDmj4c6~~DhA`RGB7Z}Fi0#uz9hAx1jK^i_;^(FF4!?JfXrJ4
zkp`12U=m8OFf>3}U@AVoxTG|x7|aF{=;oE#L(Jm=Nn*hqQ1f6xA0MBbpI3}<Ai8-i
zSj+>3Jr<+ELh<p*#U(|VdFfytX828jng@z&s1g(k-R$`I(!BD_yp;INytI69yrPER
z3aEJzNT#5hfg}Y^A2Yz_xHyJ5#yk7_1w&%j0TONuIN}wQZb29nR{~)D>G_CI1NjrX
zdC2|*>4&)m6#mHW1f@4fy7lq&^LBOdgt&?U6#F1MLFpW<7i2jD1A`5i193B09?A!q
zBf$)IPq<@{8&s5mfnfqfE!-Rhh?F=qv9U8SFo4|02@z(9k55TWDou~i$;?Xy3B|{|
zU^TA`BniS$^FT~&7-n8#QDR<tYB2-4d0kNV89+665osPYSzwsA3u@kKsCm1HG%qnJ
zsVKD!GyGB~Lc$Lg=c$TNgK<zW{}z`NfmNXU_a@XlRcPehBxqh@K|xMxd|qO1Dk%4(
zoA+-L#C@=I@lOeCElwgn9?86d#AI~ytR_RuQ-PXbr3_`@pkU^eR2E=$UmVoDsZjlK
zM4FeMl$8w9g6_W0Q1f8!`%J(*kQt+RGz3ONU^E0qLtr!nMnhmU1V%%Eejxzr>+mx|
zIxnCmuNVUZ13x1J1FZiGYH{ag#HUuICYP3^#%H7^rlb}z#OEev=F!iQqc)9(z-S1J
zhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2v8IPZ43+yEDX8~3=E8njKBGKK@?~l
zfDts!RFYVnZ4{qaRFqg5Uyz@fSCU$!2cGp|VBlnejSz^ia&mF(W)<MDW#wY?V&!A=
zVHIa9VP*AV)niL%HDdE()$wArv|+XNV&z=JD$912m6dG*b7ce@GdD*XD+3#IX%iDW
z10$mj17yVjWDNph1Oj;m9@(qQ!7c}ha4>>g%)<bhqpW9OVAu>2WME*}$AD@I({~02
z1~x|KKcICE>?|-3fGl7P69D;`c@k)u0Mo=AQ4o)1CWMzD4dSsb1?lF5&TG3vq+;Yj
zQtTjY3=B+)j0_B{EMOjoC3xbN6D-3h$f(LE%*xEyRKxeao=-qrnop2Xh>d}PNri!#
z&yJg$n}LBD#N_6-<7QxB(PIQjJ4i6|S#eu)dkWi2GBB{3FfhRd7#P^N!D<*7*cll;
zg&7z)6d62)&AAyEIQbbsd<F(b(7dEVa!z7ix<XlMQE_H|o`RvNo`If$f(BSr*U;3!
zK+izW#6ZtblR-bUIJKx)KO?a!F{doGDzhj*J*QOPCAB!aB)>r4zaX_Ju_QAuJ-D(Y
zHCMkpzbLynBQ>=o-cTQVBGLEBOe#t&s?>K$ElbVGFGwxYch1kvP0UO2$;?X)$<NOz
z)(>{^F4p%=O!g0s&?`>KW<X++>l%jSjKm^__;|;lAjin~V9zMm_>jl|*Z6n_@Q4*S
zDKiw56ftBnWagDHcmz9ofYJ^O!&YZN_@K1_3=CQIvuZ$T6P!R87~l&LkoAHR9J=2B
z|NsAosR7O4gD`B>0cdick%5hYnSqsom4Taqje(5;q#lGpW*Ibea3?EFt%)w~xf8&^
zzyMmcQOCf*07_sWw}DcX3IoFu4J)v%pmYrq1}(}_VPFWqUOgFP3Mid}gh5GBg@NIG
Vvj-@tqj(ym3~U6b003i%LjZ`vY1{w+

literal 0
HcmV?d00001

diff --git a/worksheet_0/task2_array_pointer.dSYM/Contents/Resources/Relocations/x86_64/task2_array_pointer.yml b/worksheet_0/task2_array_pointer.dSYM/Contents/Resources/Relocations/x86_64/task2_array_pointer.yml
new file mode 100644
index 0000000..4d44300
--- /dev/null
+++ b/worksheet_0/task2_array_pointer.dSYM/Contents/Resources/Relocations/x86_64/task2_array_pointer.yml
@@ -0,0 +1,7 @@
+---
+triple:          'x86_64-apple-darwin'
+binary-path:     '/Users/hazalveziroglu/Desktop/OperatingSytem/worksheet_1/task2_array_pointer'
+relocations:
+  - { offsetInCU: 0x26, offset: 0x26, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0x0, symBinAddr: 0x100003ED0, symSize: 0xA6 }
+  - { offsetInCU: 0x41, offset: 0x41, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0x0, symBinAddr: 0x100003ED0, symSize: 0xA6 }
+...
diff --git a/worksheet_0/task3_array_compare b/worksheet_0/task3_array_compare
new file mode 100644
index 0000000000000000000000000000000000000000..91bf6aa3b0cca149215178c52bcdfebd5999d466
GIT binary patch
literal 33576
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

literal 0
HcmV?d00001

diff --git a/worksheet_0/task3_array_compare.c b/worksheet_0/task3_array_compare.c
new file mode 100644
index 0000000..3b90e6c
--- /dev/null
+++ b/worksheet_0/task3_array_compare.c
@@ -0,0 +1,20 @@
+#include <stdio.h>
+
+int compare_arrays(int *arr1, int *arr2, int length) {
+    if (!arr1 || !arr2) return 0;  // Null check
+
+    for (int i = 0; i < length; i++) {
+        if (arr1[i] != arr2[i]) return 0;
+    }
+    return 1;
+}
+
+int main() {
+    int array1[] = {1, 2, 3};
+    int array2[] = {1, 2, 3};
+
+    int result = compare_arrays(array1, array2, 3);
+    printf("Arrays are %s\n", result ? "equal" : "not equal");
+
+    return 0;
+}
diff --git a/worksheet_0/task3_array_compare.dSYM/Contents/Info.plist b/worksheet_0/task3_array_compare.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..90b83e7
--- /dev/null
+++ b/worksheet_0/task3_array_compare.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.task3_array_compare</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
diff --git a/worksheet_0/task3_array_compare.dSYM/Contents/Resources/DWARF/task3_array_compare b/worksheet_0/task3_array_compare.dSYM/Contents/Resources/DWARF/task3_array_compare
new file mode 100644
index 0000000000000000000000000000000000000000..7fa8cac7fa4530ce840652e66cfe14592f30fca3
GIT binary patch
literal 9503
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
DY|oao

literal 0
HcmV?d00001

diff --git a/worksheet_0/task3_array_compare.dSYM/Contents/Resources/Relocations/x86_64/task3_array_compare.yml b/worksheet_0/task3_array_compare.dSYM/Contents/Resources/Relocations/x86_64/task3_array_compare.yml
new file mode 100644
index 0000000..7dda917
--- /dev/null
+++ b/worksheet_0/task3_array_compare.dSYM/Contents/Resources/Relocations/x86_64/task3_array_compare.yml
@@ -0,0 +1,8 @@
+---
+triple:          'x86_64-apple-darwin'
+binary-path:     '/Users/hazalveziroglu/Desktop/OperatingSytem/worksheet_1/task3_array_compare'
+relocations:
+  - { offsetInCU: 0x26, offset: 0x26, size: 0x8, addend: 0x0, symName: _compare_arrays, symObjAddr: 0x0, symBinAddr: 0x100003E20, symSize: 0x90 }
+  - { offsetInCU: 0x41, offset: 0x41, size: 0x8, addend: 0x0, symName: _compare_arrays, symObjAddr: 0x0, symBinAddr: 0x100003E20, symSize: 0x90 }
+  - { offsetInCU: 0xA1, offset: 0xA1, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0x90, symBinAddr: 0x100003EB0, symSize: 0xA6 }
+...
diff --git a/worksheet_0/task4_file_sum b/worksheet_0/task4_file_sum
new file mode 100644
index 0000000000000000000000000000000000000000..d1633a9ab094159a918f9184796df456c6e445f7
GIT binary patch
literal 33488
zcmX^A>+L^w1_nlE1_lNu1_lNJ5N2UuXk}1f00Bt`1_loX28Q_f07rM%DAyo=kSHo<
zMCD@Tfz0V(1ep`!8WDo31gzfyRg3}3XJueu0AUuWbbNeCYDEc@19lgxc?;|q7(nJN
zhbjT_VS2$rEDQ}`8cM{+7nhVK6+?NL?sK<?m?sBS0pdfMV2T539vhek(w|&hQk0pO
z4(Fq~FBNK@2~-}$hcdwwC=S33C=nlDnpd8gmlB_umzIykzjL7GML^Yq_~>RprN9&@
z9%g{ead8ZBjCc0;3x>po1H_-Oa7U*>=>vp8VGBwl@$u>TNYTI$ACKKU4X~{Y3?TDB
z`e9s9c!A;-#s|3zlFocQ{k&aWJRz=P0L2!_PLO`ET4?NDfO--n2f|=E1_lNb28ITZ
z`#}08FfcF}L-`XL7#IwoX<UMVf#F00B&~mFWMFu}z`(%Gz`zgyHH4FafdPa;R)EBj
z-3e6!r%p67FmS<n2nHVm12_lqFfcIamlhZ4=VT`7r&Q*oK$S={Fff4JvFTocxX})a
z6HQxNmvhMOQ#FF>gZK$#3LiK<gTs#fJF^xje?rXwQ5p;k4Ipzs=^Vs|VUWERP&+{W
zU|_Id1;sGjEjgJ<!Ii}&skwSidMTATnMn|xYEbhJG%zr5FfcG^LiwQZf~XiJM?+vV
z1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0q
zLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(
zGz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMsf&*dUQVZXnvz`-1QGA7(9Ay
z*MoMX_nK~CU|@LB4Ptk?e(-3n{lLKA3fc(k(Q7*$Bvr$}z;N944`?6l%TO@;1=xV@
z+7BMRrtKh&y`gV5Fud?(U|?we!N}hV+HBkH`i9x{MW^eFmzV$l|L@UV`{9Km0|P^M
z=?jluTaYmu7+!$3G((-!?fS=~`G`X7;s2_e85kJ;t8N98+ri{cFu9w7fgvqFU$3O1
zgrSJRwWuh+NFl!<H7_$ST_G(qCzU}pg(0{!S0O)5A+IzyDYdBBN<lRRyrmfAb{UYP
z85kIlY0!RN(0*Ug7I_ec?MVl*p~}G&XwNVY10#a~cn2|92xKIffl3H8KqLejKxQ*A
z2sD87f@tX8dFZZdR9&OI(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z
z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c
z4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C
z(GVC7fzc2c4S~@R7!3jHg@6L|?(+-=1_sbw=a91iAm&5&|ART8;}yUR=)K|$4s76i
z-C<%NeT+;D42(hy42%j442%X042-Zt3F6a|bMlK*8RFAGrynrHrxhnB=A|*j7o>uY
zL|}+7D9X$$Nn>DOjAsx683;OvfSF-IEdv8nd~Qa3YDH>tX-R5)MrvY8Y7qlxZenI0
z11|$u0Z2K>?i3IK;xI5UI5RLX!0uWH3Du(U`#{GsFf%eNd19Xqk_TzkV`N|eovQ$1
zi!m@Ts37q{Vk!&_49h`^89+CwGcfp}$s^kjay~yJ_$GSr=?ft9_>t6u&U0Xd7y~vD
zWHvHi8)65@TClt^8s8d?54xuwbmu!S0|Nu-APauzo%ZNr3JmdBf-@c*oJ2;EerR!O
zQL%nTVpU>JS!z{gQGR+(slH2Uadt_5fxdr1YEfcIW?p)5Wl3tTetCXTc5y~(YDv7I
zK0`@jakfc3=+uk&;?i8bWCs0$qRg_yl2rY&#3KE){G1e!!FhT5>1mc0m1#vO#>SS(
n6=v}jX&Fg|Nhy{l1_lNO>3RAg`lu%9CK;w0rJ3sGGcW)E34k-y

literal 0
HcmV?d00001

diff --git a/worksheet_0/task4_file_sum.c b/worksheet_0/task4_file_sum.c
new file mode 100644
index 0000000..c0142c0
--- /dev/null
+++ b/worksheet_0/task4_file_sum.c
@@ -0,0 +1,18 @@
+#include <stdio.h>
+
+int main() {
+    FILE *file = fopen("foo.txt", "r");
+    if (!file) {
+        perror("Error opening file");
+        return 1;
+    }
+
+    int num, sum = 0;
+    while (fscanf(file, "%d", &num) == 1) {
+        sum += num;
+    }
+    fclose(file);
+
+    printf("Sum of numbers: %d\n", sum);
+    return 0;
+}
diff --git a/worksheet_0/task4_file_sum.dSYM/Contents/Info.plist b/worksheet_0/task4_file_sum.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..ab1a9be
--- /dev/null
+++ b/worksheet_0/task4_file_sum.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.task4_file_sum</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
diff --git a/worksheet_0/task4_file_sum.dSYM/Contents/Resources/DWARF/task4_file_sum b/worksheet_0/task4_file_sum.dSYM/Contents/Resources/DWARF/task4_file_sum
new file mode 100644
index 0000000000000000000000000000000000000000..869ae3cf5b88669de7f96b182183025dec5e3daf
GIT binary patch
literal 10544
zcmX^A>+L^w1_nlE1_lN$1_lNW1_lNJHU>D5W?*2DU|?X_bgw|%Xotm#rmd~ZIb`>#
z8bQSw!7BL}7#Kj9fq@As&L99`D+n+!$S^Q4NHQ=mcrY+9#K#9Xy1PcX2Kj?Eq7V?X
zP=qizAagnxLFR<GMuebBgY`S0iotlS3=9k)%mNjNk1t8BD1mao?m{(hfgJ+_$h_qU
zB@8gVU?CQU1~3gJ;^T`;N|TDAJWThw+e6HggR4Mga6rw21$}&ca&bvfW?ni}S$sUI
z`%<CinLy>yDNsBhi^a#6=9OpWrNn3ErR8Js?;NOk5lEWQ%|Ma@$L9>NIWCSNj`7a^
ze!-B~aDe!e0Y^N5(isSY!d3vRKRq8Q8W`f^v74uXWI0Gbj0*}cP`twUp!5MrXFi^O
z-mWg55LYpPVhdy^C|!cpf-GlXV6XvmAZ`ZBL-`<cB$z?*=o0Q2<OUUGU|^U4Q42Rm
z0U~9<38C2;7#KkAgK`<-<5N<TO4H+WGV@YFD&pg@n^y|69BLj&EjA1@FR>^wFFmyw
z6kaIqE1d{&p8-^JsUnntgMyg{O%@pDErpub2u%!2i8L=UDXA#63^V-Hra;`c6Y3r{
z6(|D-1#@3<NfB5DdidRkn)eqPe)kEQmsn7clNz6wn41d9t?1_6nFetmEM44D16zxe
zh>u4yuOKlQ-8_lu5c6Qpl2FHK6j%agUP)yER`=OJ&AR~guMLsr<tJq&gDgOIAJ0rw
z_wi_gRE^@%5Eu=C(GVC7fzc2c4S~@R7!85p8UmnZJwGF)GX!c<iZL)S@G~+n!1}+S
z7JP0-d}>8%a%o9wd`4<wN@@{9d~RZ9-f#_)QGbnwz-S1JhQMeDjE2By2#kinXb6mk
zz-S1JhQMeDjE2Cl3xPsL1_l-eQAP#^Mn=Zpe7qnEG!6g~(D%tqDoQM>)OSfOOU=nI
zNG;NL&d<$F%uDgf%u5Z)&(A5=4|ee`*7r?J_79HGD^AJQFD)+8&&*5CDNRXbpisYl
zrm=+?#fB7D7BeuEBo=3z#HVHEq{bJQ=ITLa!iq~$GV}E^K-2v3;OREK4AAlgI2$yL
z%fQJ58wn9%72<lz%FV{1$I8X#&C1CZ!Ir+8m2WSra49Pfn-{AphXO0B4XXfKIx8=m
z4J#{KDl1PkD=V89s|s5bD=V7~+jUmPQYKCYMn)Y5$l?gdatp*@3-V$E<djy+1d1e(
z2nQo5a(Ea()4Np+3=Hc)f(#4{py^bYLqVo6ePUo>U}I$d4qDQ|&Vnq(7{(2XT;>+g
ziU_8O1p*)*OE-j<15OECP`M0AkQ|uDz$DAaz`)AFHi3bGfqgau1A`(X0|V1s4mCyw
zh8awCoO+B53{yZt^$eVbj0_AQBbXXEI89*eMjlRc(7+N%O_Knp9gN*9#OcDwz_1)7
z-Xg*20aM?q!5PTNz;FU2-eJHQ$;iNP62$Jb;7nj-V7LilcR6sTF)}dx0I|D0ICB^o
z7_68W7?^qjIE!Is_D67*Gcqv5fy5_daMr=hpIE@z#K^#q0TQ25!r8&dz)%8WPc7%{
zgXx`7!8r-0es%}vY(@qKA&{Cm6ByWLf-GIk$iTqC$g~j@HcTAb85tM^m|{5h!NMYz
zf%6DVe;fw`7uz{T1_o|W(C~o##lUtCh0pVuk%55+B+bAET42Kln$_k8*$7t717?Ax
z*=3m+7*2s)5Xi2<#K3S7l#SiljhPr29xyU6FdHzv0y&9;&7KL_LY@#NxCN0+3=F(r
zTauX=82G+0GBEIi{3KurUc!K2gVKN?qbi>;D>GkH4d45EJ^^uQK0!tyHU<VJ6$WNL
zJ8o`n1_ovjlbhR)n}LBvj}av8Ai>OM#cj>)DQqvvz`$z4zyudyU|{2C@DyfXU>9TX
z6ox2cVBipDWai`M2I*m7;N)ds=JON=aV)qQ7`XTu7#O%k89jy7B^elaSi!n^)xZ>=
zFatB6jU;H~k`ZL6fFgsZusJs<Z#aTx`xTON67$j(%2JDpGxPHl3{CY6^b8a<z@oZ_
zrUnLj26`q2dWM<|`k}?CMaB9ViB*X?WvNw}MfvGDrTQ+Z#n~nK1^WI4sYQt;nR)5K
zl_jaU`sMjW*~J;DsU`7-`WPh)8HFDMq8ugLAq>eGiA4<Y@s2@3j*;=fo>8vxA&~*D
z@$n4cAzM%p$dFf>%TQdJ%aEB@!r<oV<H`^pUksrO7~+c<;>#K0({d8iiy6QrCPREu
z8bf?eQd)6lRVqV#a(;exCWy|-FHU8MFG@{JVTdnIP0ePAFE7e0No9yHO=5^ottcr<
zWQZ><0&z>z7~=DiKx9r5Lwr(BHpHa-w6x;X5{A;e;>`5C)D#7<%ZoGei%LKa0;^9-
z1la*ro>q`w91oI7Nh~VQ%!|)YO9OK=^GeK2;!7BE^7GOaKm<rL$TtxT9>I>F(gak%
zgE0>%K`=npJ1{bURt_;RWYy2A0TsvKGLeA+zHA9uFGw4@-v9sq|A(mo$$>Cvog7Fl
zXq_0yd}an#237`c1~vvZ29SD?9Eb*0EFd+YbxR;ufW$!ShCnn3gVqjR{SYOfs!`Z$
z`oG}&>MEC#fP>%uF5T2pbM0YWl|e%X_k!i8e<mwTt%)w~xfA@M;LRQe28PQF3=FS8
z{$pfdkYHqB&}U>|aARa(hy@jGj0_Cjj0_Bm7#SFLGBPlLN-R)SvVf6+L4|?AvrPiz
zA_h>Y0TKokBq|IHGs9I@fLskKUO>X2Qb&w|LGwF*Hb@v$)PRIRC6E{cgZ!%ReIQ{_
zxdajh6<1;m3@)tcnIK_Mg#i)<)gWRF3^OycCxe7R6$nTeRHq0tFnBHb9t;u&RW~4E
zP;sZiz_3Ka3KYZ)paK^p3@WKq7#KtfH-d~~09AJ&VNiLd!oU!Iy&7ybsQLp5gNig2
r28Q#^9?L*xgUV@;FsRNEW?*nPc^D27hQ%jH3d9Fn2ntUyhQuKN>>PbA

literal 0
HcmV?d00001

diff --git a/worksheet_0/task4_file_sum.dSYM/Contents/Resources/Relocations/x86_64/task4_file_sum.yml b/worksheet_0/task4_file_sum.dSYM/Contents/Resources/Relocations/x86_64/task4_file_sum.yml
new file mode 100644
index 0000000..7fe5242
--- /dev/null
+++ b/worksheet_0/task4_file_sum.dSYM/Contents/Resources/Relocations/x86_64/task4_file_sum.yml
@@ -0,0 +1,7 @@
+---
+triple:          'x86_64-apple-darwin'
+binary-path:     '/Users/hazalveziroglu/Desktop/OperatingSytem/worksheet_1/task4_file_sum'
+relocations:
+  - { offsetInCU: 0x26, offset: 0x26, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0x0, symBinAddr: 0x100003EA0, symSize: 0xA7 }
+  - { offsetInCU: 0x41, offset: 0x41, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0x0, symBinAddr: 0x100003EA0, symSize: 0xA7 }
+...
diff --git a/worksheet_0/task5_swap_function b/worksheet_0/task5_swap_function
new file mode 100644
index 0000000000000000000000000000000000000000..c9c5da377d0be9bb13ba0301899f7b69ae60dbd2
GIT binary patch
literal 33616
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

literal 0
HcmV?d00001

diff --git a/worksheet_0/task5_swap_function.c b/worksheet_0/task5_swap_function.c
new file mode 100644
index 0000000..bdef2ad
--- /dev/null
+++ b/worksheet_0/task5_swap_function.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+
+void swap(void *x, void *y, size_t size) {
+    char temp[size];
+    for (size_t i = 0; i < size; i++) {
+        temp[i] = ((char *)x)[i];
+        ((char *)x)[i] = ((char *)y)[i];
+        ((char *)y)[i] = temp[i];
+    }
+}
+
+int main() {
+    int a = 5, b = 10;
+    swap(&a, &b, sizeof(int));
+    printf("a: %d, b: %d\n", a, b);
+
+    double c = 1.23, d = 4.56;
+    swap(&c, &d, sizeof(double));
+    printf("c: %.2f, d: %.2f\n", c, d);
+
+    return 0;
+}
diff --git a/worksheet_0/task5_swap_function.dSYM/Contents/Info.plist b/worksheet_0/task5_swap_function.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..5618a0f
--- /dev/null
+++ b/worksheet_0/task5_swap_function.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.task5_swap_function</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
diff --git a/worksheet_0/task5_swap_function.dSYM/Contents/Resources/DWARF/task5_swap_function b/worksheet_0/task5_swap_function.dSYM/Contents/Resources/DWARF/task5_swap_function
new file mode 100644
index 0000000000000000000000000000000000000000..fb3dde8fa5e6b0dbd619d27e53eb4c3ff325886c
GIT binary patch
literal 10074
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
S0ZD<Bfh`0_3~1CG5-0!@-3C4Y

literal 0
HcmV?d00001

diff --git a/worksheet_0/task5_swap_function.dSYM/Contents/Resources/Relocations/x86_64/task5_swap_function.yml b/worksheet_0/task5_swap_function.dSYM/Contents/Resources/Relocations/x86_64/task5_swap_function.yml
new file mode 100644
index 0000000..559320c
--- /dev/null
+++ b/worksheet_0/task5_swap_function.dSYM/Contents/Resources/Relocations/x86_64/task5_swap_function.yml
@@ -0,0 +1,8 @@
+---
+triple:          'x86_64-apple-darwin'
+binary-path:     '/Users/hazalveziroglu/Desktop/OperatingSytem/worksheet_1/task5_swap_function'
+relocations:
+  - { offsetInCU: 0x26, offset: 0x26, size: 0x8, addend: 0x0, symName: _swap, symObjAddr: 0x0, symBinAddr: 0x100003DE0, symSize: 0xF0 }
+  - { offsetInCU: 0x41, offset: 0x41, size: 0x8, addend: 0x0, symName: _swap, symObjAddr: 0x0, symBinAddr: 0x100003DE0, symSize: 0xF0 }
+  - { offsetInCU: 0xB8, offset: 0xB8, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0xF0, symBinAddr: 0x100003ED0, symSize: 0x8F }
+...
diff --git a/worksheet_0/task6_print_2d_array b/worksheet_0/task6_print_2d_array
new file mode 100644
index 0000000000000000000000000000000000000000..333ed58b42527fb67a97ed38183e457a5b811cc5
GIT binary patch
literal 33608
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
CQ*3|$

literal 0
HcmV?d00001

diff --git a/worksheet_0/task6_print_2d_array.c b/worksheet_0/task6_print_2d_array.c
new file mode 100644
index 0000000..4e3ee2e
--- /dev/null
+++ b/worksheet_0/task6_print_2d_array.c
@@ -0,0 +1,20 @@
+#include <stdio.h>
+
+void print_array(int *arr, int width, int height) {
+    for (int i = 0; i < height; i++) {
+        for (int j = 0; j < width; j++) {
+            printf("%d ", *(arr + i * width + j));
+        }
+        printf("\n");
+    }
+}
+
+int main() {
+    int array[3][3] = {
+        {1, 2, 3},
+        {4, 5, 6},
+        {7, 8, 9}
+    };
+    print_array(&array[0][0], 3, 3);
+    return 0;
+}
diff --git a/worksheet_0/task6_print_2d_array.dSYM/Contents/Info.plist b/worksheet_0/task6_print_2d_array.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..04744d1
--- /dev/null
+++ b/worksheet_0/task6_print_2d_array.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.task6_print_2d_array</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
diff --git a/worksheet_0/task6_print_2d_array.dSYM/Contents/Resources/DWARF/task6_print_2d_array b/worksheet_0/task6_print_2d_array.dSYM/Contents/Resources/DWARF/task6_print_2d_array
new file mode 100644
index 0000000000000000000000000000000000000000..c0bfecfdf51effb30cda58bed0675c00bbbcdea7
GIT binary patch
literal 9481
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

literal 0
HcmV?d00001

diff --git a/worksheet_0/task6_print_2d_array.dSYM/Contents/Resources/Relocations/x86_64/task6_print_2d_array.yml b/worksheet_0/task6_print_2d_array.dSYM/Contents/Resources/Relocations/x86_64/task6_print_2d_array.yml
new file mode 100644
index 0000000..7e8bae5
--- /dev/null
+++ b/worksheet_0/task6_print_2d_array.dSYM/Contents/Resources/Relocations/x86_64/task6_print_2d_array.yml
@@ -0,0 +1,8 @@
+---
+triple:          'x86_64-apple-darwin'
+binary-path:     '/Users/hazalveziroglu/Desktop/OperatingSytem/worksheet_1/task6_print_2d_array'
+relocations:
+  - { offsetInCU: 0x26, offset: 0x26, size: 0x8, addend: 0x0, symName: _print_array, symObjAddr: 0x0, symBinAddr: 0x100003E60, symSize: 0xA0 }
+  - { offsetInCU: 0x41, offset: 0x41, size: 0x8, addend: 0x0, symName: _print_array, symObjAddr: 0x0, symBinAddr: 0x100003E60, symSize: 0xA0 }
+  - { offsetInCU: 0xB9, offset: 0xB9, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0xA0, symBinAddr: 0x100003F00, symSize: 0x68 }
+...
diff --git a/worksheet_0/task7_tic_tac_toe b/worksheet_0/task7_tic_tac_toe
new file mode 100644
index 0000000000000000000000000000000000000000..ce8f134e5d221aec56e1f0c52ddcf9ba16b435e9
GIT binary patch
literal 33720
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

literal 0
HcmV?d00001

diff --git a/worksheet_0/task7_tic_tac_toe.c b/worksheet_0/task7_tic_tac_toe.c
new file mode 100644
index 0000000..67c4807
--- /dev/null
+++ b/worksheet_0/task7_tic_tac_toe.c
@@ -0,0 +1,59 @@
+#include <stdio.h>
+
+void print_board(char *board) {
+    for (int i = 0; i < 3; i++) {
+        for (int j = 0; j < 3; j++) {
+            printf("%c ", *(board + i * 3 + j));
+        }
+        printf("\n");
+    }
+}
+
+int check_winner(char *board) {
+    for (int i = 0; i < 3; i++) {
+        if (*(board + i * 3) == *(board + i * 3 + 1) && *(board + i * 3 + 1) == *(board + i * 3 + 2) && *(board + i * 3) != ' ')
+            return 1;
+        if (*(board + i) == *(board + i + 3) && *(board + i + 3) == *(board + i + 6) && *(board + i) != ' ')
+            return 1;
+    }
+    if (*(board) == *(board + 4) && *(board + 4) == *(board + 8) && *(board) != ' ') return 1;
+    if (*(board + 2) == *(board + 4) && *(board + 4) == *(board + 6) && *(board + 2) != ' ') return 1;
+    return 0;
+}
+
+int main() {
+    char board[3][3] = {
+        {' ', ' ', ' '},
+        {' ', ' ', ' '},
+        {' ', ' ', ' '}
+    };
+    int player = 1, moves = 0;
+
+    while (moves < 9) {
+        print_board(&board[0][0]);
+        int x, y;
+        printf("Player %d, enter row and column (0-2): ", player);
+        scanf("%d %d", &x, &y);
+        // Check if the input is within bounds
+        if (x < 0 || x > 2 || y < 0 || y > 2) {
+            printf("Invalid input. Please enter row and column between 0 and 2.\n");
+            continue;
+        }
+
+        // Check if the cell is already occupied
+        if (board[x][y] == ' ') {
+            board[x][y] = (player == 1) ? 'X' : 'O';
+            if (check_winner(&board[0][0])) {
+                print_board(&board[0][0]);
+                printf("Player %d wins!\n", player);
+                return 0;
+            }
+            player = 3 - player;  // Switch player
+            moves++;
+        } else {
+            printf("Cell already occupied. Try again.\n");
+        }
+    }
+    printf("It's a draw!\n");
+    return 0;
+}
diff --git a/worksheet_0/task7_tic_tac_toe.dSYM/Contents/Info.plist b/worksheet_0/task7_tic_tac_toe.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..6c620fd
--- /dev/null
+++ b/worksheet_0/task7_tic_tac_toe.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.task7_tic_tac_toe</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
diff --git a/worksheet_0/task7_tic_tac_toe.dSYM/Contents/Resources/DWARF/task7_tic_tac_toe b/worksheet_0/task7_tic_tac_toe.dSYM/Contents/Resources/DWARF/task7_tic_tac_toe
new file mode 100644
index 0000000000000000000000000000000000000000..caad7032944bfe2b55fd3555b385f88befae44b1
GIT binary patch
literal 10100
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
A*Z=?k

literal 0
HcmV?d00001

diff --git a/worksheet_0/task7_tic_tac_toe.dSYM/Contents/Resources/Relocations/x86_64/task7_tic_tac_toe.yml b/worksheet_0/task7_tic_tac_toe.dSYM/Contents/Resources/Relocations/x86_64/task7_tic_tac_toe.yml
new file mode 100644
index 0000000..6a20380
--- /dev/null
+++ b/worksheet_0/task7_tic_tac_toe.dSYM/Contents/Resources/Relocations/x86_64/task7_tic_tac_toe.yml
@@ -0,0 +1,9 @@
+---
+triple:          'x86_64-apple-darwin'
+binary-path:     '/Users/hazalveziroglu/Desktop/OperatingSytem/worksheet_1/task7_tic_tac_toe'
+relocations:
+  - { offsetInCU: 0x26, offset: 0x26, size: 0x8, addend: 0x0, symName: _print_board, symObjAddr: 0x0, symBinAddr: 0x100003AF0, symSize: 0x90 }
+  - { offsetInCU: 0x41, offset: 0x41, size: 0x8, addend: 0x0, symName: _print_board, symObjAddr: 0x0, symBinAddr: 0x100003AF0, symSize: 0x90 }
+  - { offsetInCU: 0x9D, offset: 0x9D, size: 0x8, addend: 0x0, symName: _check_winner, symObjAddr: 0x90, symBinAddr: 0x100003B80, symSize: 0x1B0 }
+  - { offsetInCU: 0xE1, offset: 0xE1, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0x240, symBinAddr: 0x100003D30, symSize: 0x1A5 }
+...
diff --git a/worksheet_1/README.md b/worksheet_1/README.md
new file mode 100644
index 0000000..c4ab675
--- /dev/null
+++ b/worksheet_1/README.md
@@ -0,0 +1,9 @@
+# Operating Systems Worksheet 1
+
+## Overview
+This repository contains my solutions for Worksheet 1 of the Operating Systems module. The tasks include:
+- Basic assembler programming.
+- Translating C loops into assembler.
+- Using Makefiles to automate builds.
+
+## Repository Structure
diff --git a/worksheet_1/makefile b/worksheet_1/makefile
new file mode 100644
index 0000000..1a1f431
--- /dev/null
+++ b/worksheet_1/makefile
@@ -0,0 +1,28 @@
+all: task1 task2 task3 task4
+
+task1: src/task1.asm src/asm_io.asm src/driver.c
+	nasm -f elf src/task1.asm -o src/task1.o
+	nasm -f elf src/asm_io.asm -o src/asm_io.o
+	gcc -m32 -c src/driver.c -o src/driver.o
+	gcc -m32 src/task1.o src/asm_io.o src/driver.o -o task1
+
+task2: src/task2.asm src/asm_io.asm src/driver.c
+	nasm -f elf src/task2.asm -o src/task2.o
+	nasm -f elf src/asm_io.asm -o src/asm_io.o
+	gcc -m32 -c src/driver.c -o src/driver.o
+	gcc -m32 src/task2.o src/asm_io.o src/driver.o -o task2
+
+task3: src/task3.asm src/asm_io.asm src/driver.c
+	nasm -f elf src/task3.asm -o src/task3.o
+	nasm -f elf src/asm_io.asm -o src/asm_io.o
+	gcc -m32 -c src/driver.c -o src/driver.o
+	gcc -m32 src/task3.o src/asm_io.o src/driver.o -o task3
+
+task4: src/task4.asm src/asm_io.asm src/driver.c
+	nasm -f elf src/task4.asm -o src/task4.o
+	nasm -f elf src/asm_io.asm -o src/asm_io.o
+	gcc -m32 -c src/driver.c -o src/driver.o
+	gcc -m32 src/task4.o src/asm_io.o src/driver.o -o task4
+
+clean:
+	rm -f task1 task2 task3 task4 src/*.o
diff --git a/worksheet_1/src/asm_io.asm b/worksheet_1/src/asm_io.asm
new file mode 100644
index 0000000..2e6e666
--- /dev/null
+++ b/worksheet_1/src/asm_io.asm
@@ -0,0 +1,26 @@
+;
+; file: asm_io.asm
+; Assembly I/O routines
+; To assemble for DJGPP
+;   nasm -f coff -d COFF_TYPE asm_io.asm
+; To assemble for Borland C++ 5.x
+;   nasm -f obj -d OBJ_TYPE asm_io.asm
+; To assemble for Microsoft Visual Studio
+;   nasm -f win32 -d COFF_TYPE asm_io.asm
+; To assemble for Linux
+;   nasm -f elf -d ELF_TYPE asm_io.asm
+; To assemble for Watcom
+;   nasm -f obj -d OBJ_TYPE -d WATCOM asm_io.asm
+; IMPORTANT NOTES FOR WATCOM
+;   The Watcom compiler's C library does not use the
+;   standard C calling convention. For example, the
+;   putchar() function gets its argument from the
+;   the value of EAX, not the stack.
+
+
+%define NL 10
+%define CF_MASK 00000001h
+%define PF_MASK 00000004h
+%define AF_MASK 00000010h
+%define ZF_MASK 00000040h
+%define SF_MASK 00000080h
\ No newline at end of file
diff --git a/worksheet_1/src/asm_io.inc b/worksheet_1/src/asm_io.inc
new file mode 100644
index 0000000..9163be3
--- /dev/null
+++ b/worksheet_1/src/asm_io.inc
@@ -0,0 +1,30 @@
+	extern  read_int, print_int, print_string
+	extern	read_char, print_char, print_nl
+	extern  sub_dump_regs, sub_dump_mem, sub_dump_math, sub_dump_stack
+
+%macro 	dump_regs 1
+	push	  dword %1
+	call	  sub_dump_regs
+%endmacro
+
+
+;
+; usage: dump_mem label, start-address, # paragraphs
+%macro  dump_mem 3
+	push	 dword %1
+	push	 dword %2
+	push	 dword %3
+	call	 sub_dump_mem
+%endmacro
+
+%macro	dump_math 1
+	push	 dword %1
+	call	 sub_dump_math
+%endmacro
+
+%macro  dump_stack 3
+	push	 dword %3
+        push     dword %2
+	push	 dword %1
+        call     sub_dump_stack
+%endmacro
\ No newline at end of file
diff --git a/worksheet_1/src/asm_io.o b/worksheet_1/src/asm_io.o
new file mode 100644
index 0000000000000000000000000000000000000000..d75ea1f27158915097669a9fe1672cfa3c2e56e7
GIT binary patch
literal 304
zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpH?P-MY^L=hk}nUPdJU|?X7M&g6yL0oPI
z1_mY&1BMwH7!(*77(jYK;w%gd3<3-c48l+`m@)-Mh&YT7Gmk;9IHS0vs3b9oL9e(n
l7eYh$Fr_FoTpt4i0}I2){|v=N$@+=Kx$&9#dWprk3;^=O6ZZfB

literal 0
HcmV?d00001

diff --git a/worksheet_1/src/driver.c b/worksheet_1/src/driver.c
new file mode 100644
index 0000000..d386c74
--- /dev/null
+++ b/worksheet_1/src/driver.c
@@ -0,0 +1,7 @@
+int __attribute__((cdecl)) asm_main(void);
+
+int main() {
+    int ret_status;
+    ret_status = asm_main();
+    return ret_status;
+}
diff --git a/worksheet_1/src/driver.o b/worksheet_1/src/driver.o
new file mode 100644
index 0000000000000000000000000000000000000000..964d1066906062baddae6f1a5a2c83c8b9222b7e
GIT binary patch
literal 572
zcmX^2>+L^w1_lOZ1_lO31_lNe1_p)}5JLgV2eBD2K?VZ@!vaPI1`rL>55gcbKq}+o
zOHwOJKr9H3j}LK;2!XI+q%2fF$UY7xh+PaU3=J^(`1s`f+=9g9lK9fR^31%H_;?=|
zm>h^!U|?VnVPIf5z{tSB#K6EH05b!^1u0>Ok5A2rPb*5yO$Boq(A{Cez`y{)SD<D<
zR537cL%ap%8Zj_1NI=7efq{<!f+3cG#3h&@Yy&0+1|9~mUWNd$P6Po8LKsGf62}Vd
zeA@hm<GAY|kn$Jr{{R2q>H4GF^+)p&j@ZK>F$M+(P*}p92n`pI6k}Bo17i&bqW}*p
zO9vywA2JLK3~T=X{}0yV$j8yb<irb#1CY-c85nrM`WP5kSQ!`?_(6__8VqGJFvKSo
N=f>wIX67+40028|IOqTX

literal 0
HcmV?d00001

diff --git a/worksheet_1/src/task1.asm b/worksheet_1/src/task1.asm
new file mode 100644
index 0000000..0442b2c
--- /dev/null
+++ b/worksheet_1/src/task1.asm
@@ -0,0 +1,17 @@
+section .data
+    num1 dd 10
+    num2 dd 20
+    result dd 0
+
+section .text
+    global asm_main
+    extern print_int
+
+asm_main:
+    mov eax, [num1]
+    add eax, [num2]
+    mov [result], eax
+    push eax
+    call print_int
+    add esp, 4
+    ret
diff --git a/worksheet_1/src/task1.o b/worksheet_1/src/task1.o
new file mode 100644
index 0000000000000000000000000000000000000000..16322411018601cd7b758cef60386d91406c0583
GIT binary patch
literal 704
zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpJY8JNK=QVEcmAPm!;z{tSBgJcK`l+Dh-
z0JfhE$}eDKV32~cL6iW9U|?Y2Wne&Y$pl6Q21BSEhyvLKqQw~)7??l|D89hRz%YS<
zfq|8QfdOO}$X<|{@@VEIFflL~L-l|tn0e|93=Etg0VrO;#K54yz`y`92V@V3=77q9
zC@uyD1`!YgiWh=tW>%20#UOP7FaG@h|G)VN%VCfN0|SFzN@7VOgI-B$MG1pmaYk`T
zQAuJFgI;lEE`)~ii&AqSYM|P1Q80Id<XIR#{s+-8j2hFR@ML1(he?8IMzGsKjs<fW
z7#SoP7#KkAhVemuhp-tKK;ftb<1m2uObiUgMalXliN)E5dWprk40)xwh9JU-p(wSu
vG^d22peQr1BtA2*gdwpwH$FEpGY`oCXj))og2WYw2BjGgEd+{Jb_NCje!w)V

literal 0
HcmV?d00001

diff --git a/worksheet_1/src/task2.asm b/worksheet_1/src/task2.asm
new file mode 100644
index 0000000..a2eea57
--- /dev/null
+++ b/worksheet_1/src/task2.asm
@@ -0,0 +1,53 @@
+section .bss
+    name resb 32
+    count resd 1
+
+section .text
+    global asm_main
+    extern print_string, print_int, read_int, read_string
+
+asm_main:
+    ; Prompt for name
+    push message_name
+    call print_string
+    add esp, 4
+
+    push name
+    call read_string
+    add esp, 4
+
+    ; Prompt for count
+    push message_count
+    call print_string
+    add esp, 4
+
+    push count
+    call read_int
+    add esp, 4
+
+    ; Validate count
+    mov eax, [count]
+    cmp eax, 50
+    jl invalid
+    cmp eax, 100
+    jg invalid
+
+    ; Print welcome message
+print_loop:
+    push name
+    call print_string
+    add esp, 4
+    dec eax
+    jnz print_loop
+    ret
+
+invalid:
+    push error_message
+    call print_string
+    add esp, 4
+    ret
+
+section .data
+    message_name db "Enter your name: ", 0
+    message_count db "Enter a number (50-100): ", 0
+    error_message db "Invalid input!", 0
diff --git a/worksheet_1/src/task3.asm b/worksheet_1/src/task3.asm
new file mode 100644
index 0000000..91d006b
--- /dev/null
+++ b/worksheet_1/src/task3.asm
@@ -0,0 +1,23 @@
+section .data
+    array dd 1, 2, 3, ..., 100  ; Replace ... with remaining numbers
+    sum dd 0
+
+section .text
+    global asm_main
+    extern print_int
+
+asm_main:
+    mov ecx, 100      ; Counter for 100 elements
+    mov esi, array    ; Start of the array
+    xor eax, eax      ; Accumulator
+
+sum_loop:
+    add eax, [esi]
+    add esi, 4        ; Move to the next integer
+    loop sum_loop
+
+    mov [sum], eax
+    push eax
+    call print_int
+    add esp, 4
+    ret
diff --git a/worksheet_1/src/task4.asm b/worksheet_1/src/task4.asm
new file mode 100644
index 0000000..a7facb2
--- /dev/null
+++ b/worksheet_1/src/task4.asm
@@ -0,0 +1,66 @@
+section .bss
+    start resd 1
+    end resd 1
+
+section .data
+    array dd 1, 2, 3, ..., 100  ; Replace ... with remaining numbers
+    sum dd 0
+
+section .text
+    global asm_main
+    extern print_int, read_int, print_string
+
+asm_main:
+    ; Prompt for range
+    push message_start
+    call print_string
+    add esp, 4
+    push start
+    call read_int
+    add esp, 4
+
+    push message_end
+    call print_string
+    add esp, 4
+    push end
+    call read_int
+    add esp, 4
+
+    ; Validate range
+    mov eax, [start]
+    cmp eax, 1
+    jl invalid
+    mov ebx, [end]
+    cmp ebx, 100
+    jg invalid
+    cmp eax, ebx
+    jg invalid
+
+    ; Calculate sum
+    xor ecx, ecx
+    mov esi, array
+    sub eax, 1
+    add esi, eax * 4  ; Adjust start index
+    mov ecx, ebx
+    sub ecx, eax      ; Range length
+
+sum_range:
+    add eax, [esi]
+    add esi, 4
+    loop sum_range
+
+    push eax
+    call print_int
+    add esp, 4
+    ret
+
+invalid:
+    push error_message
+    call print_string
+    add esp, 4
+    ret
+
+section .data
+    message_start db "Enter start of range (1-100): ", 0
+    message_end db "Enter end of range (1-100): ", 0
+    error_message db "Invalid range!", 0
-- 
GitLab