From a5bc53102ddb9a6a3a942e328b25a4f637ea1d39 Mon Sep 17 00:00:00 2001 From: spikey Date: Sat, 17 Feb 2024 17:19:28 -0500 Subject: [PATCH] hi --- sys/drv/vga/Makefile | 10 ++++++++++ sys/drv/vga/include/video.h | 7 +++++-- sys/drv/vga/vga.o | Bin 0 -> 2792 bytes sys/drv/vga/video.c | 24 ++++++++++++++---------- sys/sysinit.c | 4 ++++ 5 files changed, 33 insertions(+), 12 deletions(-) create mode 100644 sys/drv/vga/Makefile create mode 100644 sys/drv/vga/vga.o create mode 100644 sys/sysinit.c diff --git a/sys/drv/vga/Makefile b/sys/drv/vga/Makefile new file mode 100644 index 0000000..833e2a6 --- /dev/null +++ b/sys/drv/vga/Makefile @@ -0,0 +1,10 @@ +CC=cc +FLAGS=-Wall -c -g -Wextra -ffreestanding -m32 -nostdlib +SRCS=$(wildcard *.c) +INCLUDE=include/ +MAIN_INCLUDE=../../include/ +BIN=vga.o + +all: + $(CC) $(FLAGS) -I $(INCLUDE) -I $(MAIN_INCLUDE) $(SRCS) -o $(BIN) + diff --git a/sys/drv/vga/include/video.h b/sys/drv/vga/include/video.h index 42b34f3..1c3ff3f 100644 --- a/sys/drv/vga/include/video.h +++ b/sys/drv/vga/include/video.h @@ -1,10 +1,13 @@ #ifndef VIDEO_H #define VIDEO_H -#define VGA_START 0xB8000 +#include + #define SIZE 4000 -void vga_write(char *, char, short); +s8 *vga_vidmem = (s8 *)0xb8000; + +void vga_write(s8 *, s8); void vga_clearscreen(); #endif diff --git a/sys/drv/vga/vga.o b/sys/drv/vga/vga.o new file mode 100644 index 0000000000000000000000000000000000000000..95df105ff3174ffee36fee78ac9ca90c452d3a1a GIT binary patch literal 2792 zcma)8drXs86u)gLPvub&89MERDGGEH9|K|9g6K9u6s=LV*%tUHRVY{r*2hMnve6V4 z5Jenn7G0c**$_8$Zb2xxpi{;ezBfaR7>t+=;~qFRcFxDW*qHsXlicrj-sj$X?!9es zV$w2!KtLD?h=@Fs2nlr?v&`oqlmwC~yxkRKm95`8=sz$rIyx%G7`tjhxoXf}g|0r$ z5}%eHn`-3Y0(&_s?5YvL4|bJ17|Q(stqy?=zKJ6OC%aFxYOvgoSMr{_dJ5aBsxG!e zyv2*yT|(Ni&RH0U<^#7Kt*xz>T04cG1g;;n>^iwfB+OLmkEUh>y9US;q&3xLFNQce zJ3ezi92jF(&T4GTy1$o*HzX@g*dqd?hwrxbj7!tG4 z+S?fAIGKK+J#NP9L)Kn-a;B!%wI}K&%}P(*EKzW5eNf#RM=K#EhrJ*3bEz4h(}F9f zJgo{}m+qTyrKALO9n-{x-&34A-DE4hb${RE-?D6aoq67TMdp;>E&5hNWme6;Z#G*Z zZhT(doV_42qH53lr)g(@dAj?=lOdPE*ZM4`)zT%!F5(SCxrLXnn06J%im&Sa@=&x4 zJgnT)CyY7c^<)~97Q!IJh5zDb(>MnV?o}y8^MQs8jYh+1w2gwEii(Q!!)B#_aJgGR zmF}8bQ@bTvT)scBfB&BwjF#~CCBCagsn>Lzb& zpIi6sr6b>8imKjwyJ-6uusDp@`J)Mq?5e5JxRqnugn?+?^6HXsjsx{ySSq!CaG|T1H{R*3>K4dizSd-4q`WG%R|&W^}RXM1x&=HCm#` z`XHf0B|pCDpQF?F1jfylyl_a|ZCzjbwQNhB_Rg<~)ykY#m( zGHRYYQa*nU)k&FRtet@{CozoWD^<{BK`U#qfb!T|e;7!D?Wsht(_Juif{RNz81P`= zK;jRC(%ZdE7(Y=g%(?(B#255&yw&;WPz43d&&Y)gjWQllM2{WQi3q+5&qze*<3Uv- z;_=J~oQO<#PWFCI_8E`Bb^E~qXKTgvNTB|7rwEDAm5jYpV@g~fDbiT_ z&*gG?cB@fu;)q&pj$SC!aVB+shT4=}XxJ>%nu&UOQcAosNu9E6*_y<)>b1)Fq(n8O z!qo`92tR92m^${x1C}(0;u{p*0R_;siHHy+K?G$0#UMnuu`>~2%W%%<7fUgo;wp+- zidhs35TWjSR4zk=eE9HUo`V#z8v@uk+=uacFppU%1J0$$*9SR<%8Mx`P)tUI{8B(6 zpaM|@A6db+T$45(&}1CLY{nV69GQtTn}{q^Ytj-~dO-o<6|(={a~TF?a_NOSwce1G z2Vp#~O;0y+Ma0RfHEIny4w5|!$blQh0-!!)QLX0XjJ(`j&H!^U7s<5`{o z1Me302np|@^P|n~-Bi#+tNA?#AmMPXLIE)!w1Urv`Co>CG1wNQV=&lTfimO6fJcAk zcM^?G#Og+Zj-MYE0YX2P17+s7it(5fs1XMK7BXTnNuY3E$68oNIp}a5c(2e8Q@jm> z&rS0!1)&&pj95McDA*j(hJOsC$WUT7+*9YeKS5nz&|zIq7_4py@O%uddk+M>UyNAY zcR}HtZxHe+K!^F@Nf^&p2|VVDr1>&oACG{{2=k%6jw17OhsJ1`6Cm?D#{8&F4}MWj zewYi#DT>Tg&l*h?=!4V-1NWV_mmC1UP&80t>%9Ro#xTDQ@WWm*Vt&1#aNd`2IM{5T yCxH$9a4Vd1fk=G8&<%)hBgUg2#v$)K^*%7X2|7k>9eCHA{o +#include -void vga_write(char*, char, short) { +void +vga_write(s8 *sequence, s8 flags) +{ + u32 i = *vga_vidmem; -} - -void vga_clearscreen() { - for (int i = 0; i <= SIZE; i++) { - VGA_START[i] = 0; - } -} \ No newline at end of file + while (*sequence != '\0') { + vga_vidmem[i] = *sequence; + *sequence++; + i++; + vga_vidmem[i] = flags; + i++; + } +} diff --git a/sys/sysinit.c b/sys/sysinit.c new file mode 100644 index 0000000..af45b09 --- /dev/null +++ b/sys/sysinit.c @@ -0,0 +1,4 @@ +void +sysinit() { + write("Om Smart.", 0x0F, 10); +}