From 188807622ac0e6937260d710da1d62010a28fd14 Mon Sep 17 00:00:00 2001
From: "Hazal2.Veziroglu@live.uwe.ac.uk" <hazal2.veziroglu@live.uwe.ac.uk>
Date: Thu, 5 Dec 2024 12:00:45 +0000
Subject: [PATCH] Update 24 files

- /Worksheet2_2/Makefile
- /Worksheet2_2/frame_buffer.c
- /Worksheet2_2/frame_buffer.h
- /Worksheet2_2/hardware_interrupt_enabler.s
- /Worksheet2_2/interrupt_asm.o
- /Worksheet2_2/interrupt_asm.s
- /Worksheet2_2/interrupt_handlers.o
- /Worksheet2_2/interrupt_handlers.s
- /Worksheet2_2/interrupts.c
- /Worksheet2_2/interrupts.h
- /Worksheet2_2/interrupts.o
- /Worksheet2_2/io.h
- /Worksheet2_2/io.o
- /Worksheet2_2/io.s
- /Worksheet2_2/keyboard.c
- /Worksheet2_2/keyboard.h
- /Worksheet2_2/keyboard.o
- /Worksheet2_2/kmain.c
- /Worksheet2_2/kmain.o
- /Worksheet2_2/loader.s
- /Worksheet2_2/pic.c
- /Worksheet2_2/pic.h
- /Worksheet2_2/pic.o
- /Worksheet2_2/types.h
---
 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 432 -> 0 bytes
 Worksheet2_2/interrupt_asm.s              |   6 --
 Worksheet2_2/interrupt_handlers.o         | Bin 576 -> 0 bytes
 Worksheet2_2/interrupt_handlers.s         |  17 ----
 Worksheet2_2/interrupts.c                 | 115 ----------------------
 Worksheet2_2/interrupts.h                 |  40 --------
 Worksheet2_2/interrupts.o                 | Bin 2448 -> 0 bytes
 Worksheet2_2/io.h                         |   7 --
 Worksheet2_2/io.o                         | Bin 416 -> 0 bytes
 Worksheet2_2/io.s                         |   9 --
 Worksheet2_2/keyboard.c                   |  43 --------
 Worksheet2_2/keyboard.h                   |  11 ---
 Worksheet2_2/keyboard.o                   | Bin 944 -> 0 bytes
 Worksheet2_2/kmain.c                      |  13 ---
 Worksheet2_2/kmain.o                      | Bin 360 -> 0 bytes
 Worksheet2_2/loader.s                     |   0
 Worksheet2_2/pic.c                        |  19 ----
 Worksheet2_2/pic.h                        |  14 ---
 Worksheet2_2/pic.o                        | Bin 700 -> 0 bytes
 Worksheet2_2/types.h                      |  13 ---
 24 files changed, 354 deletions(-)
 delete mode 100644 Worksheet2_2/Makefile
 delete mode 100644 Worksheet2_2/frame_buffer.c
 delete mode 100644 Worksheet2_2/frame_buffer.h
 delete mode 100644 Worksheet2_2/hardware_interrupt_enabler.s
 delete mode 100644 Worksheet2_2/interrupt_asm.o
 delete mode 100644 Worksheet2_2/interrupt_asm.s
 delete mode 100644 Worksheet2_2/interrupt_handlers.o
 delete mode 100644 Worksheet2_2/interrupt_handlers.s
 delete mode 100644 Worksheet2_2/interrupts.c
 delete mode 100644 Worksheet2_2/interrupts.h
 delete mode 100644 Worksheet2_2/interrupts.o
 delete mode 100644 Worksheet2_2/io.h
 delete mode 100644 Worksheet2_2/io.o
 delete mode 100644 Worksheet2_2/io.s
 delete mode 100644 Worksheet2_2/keyboard.c
 delete mode 100644 Worksheet2_2/keyboard.h
 delete mode 100644 Worksheet2_2/keyboard.o
 delete mode 100644 Worksheet2_2/kmain.c
 delete mode 100644 Worksheet2_2/kmain.o
 delete mode 100644 Worksheet2_2/loader.s
 delete mode 100644 Worksheet2_2/pic.c
 delete mode 100644 Worksheet2_2/pic.h
 delete mode 100644 Worksheet2_2/pic.o
 delete mode 100644 Worksheet2_2/types.h

diff --git a/Worksheet2_2/Makefile b/Worksheet2_2/Makefile
deleted file mode 100644
index c63025f..0000000
--- a/Worksheet2_2/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-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
deleted file mode 100644
index f6eff01..0000000
--- a/Worksheet2_2/frame_buffer.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#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
deleted file mode 100644
index 2351f7e..0000000
--- a/Worksheet2_2/frame_buffer.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#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
deleted file mode 100644
index e69de29..0000000
diff --git a/Worksheet2_2/interrupt_asm.o b/Worksheet2_2/interrupt_asm.o
deleted file mode 100644
index c189cad33ad2baedfad434b3ae14e29085b216ca..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

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>

diff --git a/Worksheet2_2/interrupt_asm.s b/Worksheet2_2/interrupt_asm.s
deleted file mode 100644
index da09acb..0000000
--- a/Worksheet2_2/interrupt_asm.s
+++ /dev/null
@@ -1,6 +0,0 @@
-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
deleted file mode 100644
index 3c001059dbf17659fcea2285aa91ae9f13215e8e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

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

diff --git a/Worksheet2_2/interrupt_handlers.s b/Worksheet2_2/interrupt_handlers.s
deleted file mode 100644
index 35fa4bc..0000000
--- a/Worksheet2_2/interrupt_handlers.s
+++ /dev/null
@@ -1,17 +0,0 @@
-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
deleted file mode 100644
index 80e84cc..0000000
--- a/Worksheet2_2/interrupts.c
+++ /dev/null
@@ -1,115 +0,0 @@
-#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
deleted file mode 100644
index be53adc..0000000
--- a/Worksheet2_2/interrupts.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#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
deleted file mode 100644
index 0979c78593cea0b72d4753ce773c4c1251ec9911..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

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

diff --git a/Worksheet2_2/io.h b/Worksheet2_2/io.h
deleted file mode 100644
index 79bcf8c..0000000
--- a/Worksheet2_2/io.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#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
deleted file mode 100644
index 5eeb851de12d0a5f894a747042e4a05b097f548b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

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

diff --git a/Worksheet2_2/io.s b/Worksheet2_2/io.s
deleted file mode 100644
index da2d5f9..0000000
--- a/Worksheet2_2/io.s
+++ /dev/null
@@ -1,9 +0,0 @@
-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
deleted file mode 100644
index 56a7d6c..0000000
--- a/Worksheet2_2/keyboard.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#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
deleted file mode 100644
index aea190f..0000000
--- a/Worksheet2_2/keyboard.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#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
deleted file mode 100644
index 7b401d5ea7ed604a6cb2ccef719e7e63d1bc2981..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

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

diff --git a/Worksheet2_2/kmain.c b/Worksheet2_2/kmain.c
deleted file mode 100644
index 4806ffe..0000000
--- a/Worksheet2_2/kmain.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#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
deleted file mode 100644
index d7f6124a36047132193b1be82c5ec58f7dbeb105..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

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~

diff --git a/Worksheet2_2/loader.s b/Worksheet2_2/loader.s
deleted file mode 100644
index e69de29..0000000
diff --git a/Worksheet2_2/pic.c b/Worksheet2_2/pic.c
deleted file mode 100644
index 2e59879..0000000
--- a/Worksheet2_2/pic.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#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
deleted file mode 100644
index b3fda58..0000000
--- a/Worksheet2_2/pic.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#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
deleted file mode 100644
index 97a4d53beebf351f120dc505b4738deb2d0dbe68..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

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

diff --git a/Worksheet2_2/types.h b/Worksheet2_2/types.h
deleted file mode 100644
index f417311..0000000
--- a/Worksheet2_2/types.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#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
-- 
GitLab