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