From 15fd2420d5dc544d220c8657887b5be31e81ab1b Mon Sep 17 00:00:00 2001 From: Jonathan Turner Date: Tue, 7 Nov 2023 12:44:50 -0500 Subject: [PATCH] Leaving this Install and moving to new OS in VM. --- Part3/09_memory/boot/bootsect.bin | Bin 0 -> 512 bytes Part3/09_memory/boot/kernel_entry.o | Bin 0 -> 480 bytes Part3/09_memory/cpu/idt.o | Bin 0 -> 2976 bytes Part3/09_memory/cpu/interrupt.o | Bin 0 -> 2128 bytes Part3/09_memory/cpu/isr.o | Bin 0 -> 8528 bytes Part3/09_memory/cpu/ports.o | Bin 0 -> 2808 bytes Part3/09_memory/cpu/timer.o | Bin 0 -> 3076 bytes Part3/09_memory/drivers/keyboard.o | Bin 0 -> 4764 bytes Part3/09_memory/drivers/screen.o | Bin 0 -> 6100 bytes Part3/09_memory/kernel.bin | Bin 0 -> 16768 bytes Part3/09_memory/kernel/kernel.o | Bin 0 -> 7428 bytes Part3/09_memory/libc/globals.o | Bin 0 -> 2400 bytes Part3/09_memory/libc/linked.o | Bin 0 -> 10528 bytes Part3/09_memory/libc/mem.o | Bin 0 -> 4320 bytes Part3/09_memory/libc/string.o | Bin 0 -> 4948 bytes Part3/09_memory/os-image.bin | Bin 0 -> 17280 bytes 16 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Part3/09_memory/boot/bootsect.bin create mode 100644 Part3/09_memory/boot/kernel_entry.o create mode 100644 Part3/09_memory/cpu/idt.o create mode 100644 Part3/09_memory/cpu/interrupt.o create mode 100644 Part3/09_memory/cpu/isr.o create mode 100644 Part3/09_memory/cpu/ports.o create mode 100644 Part3/09_memory/cpu/timer.o create mode 100644 Part3/09_memory/drivers/keyboard.o create mode 100644 Part3/09_memory/drivers/screen.o create mode 100755 Part3/09_memory/kernel.bin create mode 100644 Part3/09_memory/kernel/kernel.o create mode 100644 Part3/09_memory/libc/globals.o create mode 100644 Part3/09_memory/libc/linked.o create mode 100644 Part3/09_memory/libc/mem.o create mode 100644 Part3/09_memory/libc/string.o create mode 100644 Part3/09_memory/os-image.bin diff --git a/Part3/09_memory/boot/bootsect.bin b/Part3/09_memory/boot/bootsect.bin new file mode 100644 index 0000000000000000000000000000000000000000..f7a6d984c0c37dc3ca7726d1b6279cccf1fda13d GIT binary patch literal 512 zcmb_YK}#D!6n?u6rfJY!Dx_e081&RbAu5Q1$6g98h{cPvkkOqjA!Y|AD;U@`gB%gR7!PJ!Bjr{sX_ud*AyWAMbnh+&gy{RvV|` zdzWW{4*^FCKZm4SXr`yZ&IALo?nO#+iK9X=u>C03xBFvVk{!SXjZ;GTZ+;VtLB;A+AN(nK74MZ5D3|?7_lrgesBWt<5Kp3JXsz^#%rMCum5JGle z4xm?C2k-=92cYm1YFTJL2sD{1Yc^CF%loA!XE?gnl-xf@LmkuGSG3{I$y4_snBR5q z|N4i1$3OP@Ehkk$2znbeT}wHMWdfX?(0F%`j@qFmiUQQ*0Ei52!?#MV6$6O;MSYDXZS4 JyoWmX^#+!8x!3>z literal 0 HcmV?d00001 diff --git a/Part3/09_memory/boot/kernel_entry.o b/Part3/09_memory/boot/kernel_entry.o new file mode 100644 index 0000000000000000000000000000000000000000..05e8c663aa6a71866904f2cb5630a33c7faeb2c3 GIT binary patch literal 480 zcmb7BI|{-;5S=w4YNwUh2zG)HEj&OPt-M1>U_me+*`2~vUdf|)48h7?TxXJ9TuTR* zH}B1xw_$VH?sq~6a3vssF9S&IVAJ9PBIr5mU&xt!BD=LF()SWZwr4Hy^n`p%k8=js zn2!G?CmJNAg>-nIku#^36SQ?D-^>w0mp7+==;=2a42W|UdpM8z{bh`Kys5JlqdX(T z`k+x^mQ&Z19a^qr(Rtj)54!tV4B=_~A^(YqC$w*r*EOz=QdP1@WreDVGhITeF;hrh J&g*#(_yO96C-ndT literal 0 HcmV?d00001 diff --git a/Part3/09_memory/cpu/idt.o b/Part3/09_memory/cpu/idt.o new file mode 100644 index 0000000000000000000000000000000000000000..1da2fe3a92c0dfc008c39614372150404d5c6bde GIT binary patch literal 2976 zcma)8O>7ip7=FK*-R;u-X-kW?l!UDT!RXHJwskE?p+G9s5NNA58`n)sWw@kU{o6Pq-@9+2j z?Y=XA>;)kNDG{X8LyhR&Waya=U^k7>5G`H)?aF-m@;6uJll99ZYwTfqC$^@6CRzDD zwic6i&^YLaNcsBr!CqDZwyS5pMXfJ6@Fu6$?{Flo_XVZ_F^YgHMiZ2xn0O1$^h;<4 z<3!F+rtT8)x(tZe%V?WP(Up`)Q=%x;WhT>TDA&q39$QEHOSdXRW6M(G#f z7b%XN2;wt5@_jI7xmoA6I0-UfFZ-l#e+D!jR3AJ9s^{(@Iy8_N5<9cQDLp%$9TJ-p zgO8)X$4F1^O+BAl7)J08N~QM0k7-MagApGVsT79@gd{SgXT$iJ6c!DtOlLKTYSN2| z8sflMsO}o${^mxn9~$E#{qbIwHcFI&DzjKk8>I4jSwtBj7KS-FJ3$M>1#~tr-K%n7 zj1vc8kaa=>ZNuF8$f?7{Or0j?r|@aSr(TGEvKh3&CBeFh+DexQOKQ~krueHXmS;4X zvMnH3nV|N_>|a0Lx|J;KpZ)Zs_cUBA(X<=QN~d1;ET6iLXEz*cImZXJ-ZC2=nXPl? zs#oMnm4@kC6`z`>v)r;=YT0eu4;-%5usz>$;jEgTMHo*Z98Rrix`fgdl~1kCIn~{f z<4d{2rBd!$W7;U@CX1zVv0U7f%eSW{(fD1*nr&E)<=QorN-X zVp||}*RnhxL$V!duXgR0Z#!WST(z_L6}RJCHNS(gG&`=J+c43d5)8J`?6j?d-*wS( z;l!!RqT6{Lsf9(;^`{EOJ(afA?zpS65HA!@4J)9gNuGVd;yoZba`^Dx-0r1n*YUgI zEc4}Vpq1V(m5t)GQJQ?}k?G?-3q@QwN#bHsjHhF<_pz6JKKNtd3q}XC$xGUyOk6v< zhLFIwPx>aJ{xgA_EgJ+SdlIAj>pcZz#`Q9kgM~jXJwy-IxkrAM`Q2k(W$;>U#%18OQx6mC!R4qu zx_iMP?`<6U2 z$cXh=lDf&L=7%FNDC-=Qm;-9apOZ+2x7zm2D$sXBY%1njEyK6Y`(!MezDY*a^T=T1 zvQ_OiDz;Paz!h+_T6L{Aqh8ZBorbj`p=CRkN5B8RG_+^g1*X&~%$A={i)`0a7a1M?FH{;_NKC{?z+9`E)(>{Y9 z6;r9SNIeI`CesALf^ZDU^d46hLcuQ0cD2-y`{0B#g@|iG1>wSlMT!-uNYoqGD z0nRx*ZAIr!1 zqVxDUvM&4{sd?}lqRs#){erlgOr)qWG4}cdKaGC*-zxr|;1vz)@w#)L(RxjsgB`Fb HQT6@>>a${> literal 0 HcmV?d00001 diff --git a/Part3/09_memory/cpu/interrupt.o b/Part3/09_memory/cpu/interrupt.o new file mode 100644 index 0000000000000000000000000000000000000000..9569f5690c192c81c1a2ca527f651f58d5decc3e GIT binary patch literal 2128 zcmb7_PiRzE6o>C5nMq>Qj9S~qT2mYU+l+ZHYN}l{LM^nGViwZ0UBrndIG0S!yKf?j zNDCrG(J4hmsGwva6-o)Tl-896+l3U7;zB_L#f2W;qGaL5l*ZpVb6-7*n?AVreBXWd zciv-iC-cSDkKWH@GA6w;rrta?V|x9K^-@=voT*E<{;$eCdE|Vm3(~Aw<^6giYQ1MJ zy^yua(|4PPH5E5w*vF#*>sbu0+_Mcs_q&T1_#|zDdnqmjH)Et%Z&NMLS>D6_uw-@) zAHTJI_}9Ft-m3mqy<2_w@SmBPnf}y@hktLHzW(A(pI2{JuT<|>liH@o)>xBFa>*nY zxzr^STNuDiP|I5!e_GOy#^a?%j^eWx))J8WvEuyQQ zUZcyN7Sqq3UZ?LpEujfd?R3V|8}y@4#xA9cLUr~{Iww?bJLr^9gIz|)gtB%yeJPZ) zD`=lkqg_cOLQQrR4GJ~e)zmLE%dVl1g<9-ddQWJ!eTy~=&9R--B{bI-XoXO#T}O*S zI16$WDnt7#rV#ImE3Q%;1RW^Xs&_XuQrnXzo~h~i2M~0enaKPv8g2FM+3&bMI;8 ze}J?8kI0|zpYT@Yf5F?7--LH4=Vx~+zYp(GPVg^5E3(A*)CzY=TUs7HGUs2u-zNUN=_@?rA!S|GJ1t-e+ zvv{Pu4?LsX>>3+iR~oGhIX6C5DHP+fDaCGJPjPhj$dEH77d>UH@7h}~?;Rb8E8~N5 z?-`F>7l#9$LY}<F=u4o;LE-!_(V5ZQ?1YMI;kQD3DYju|RTx1OrJ15)C99N;a%L zPqLw8L&=7c4J8{&Hk52A*>1^pBkLldi-gd`Md;xov~UqRxCjkgguIIocM;OqT#HDC a-x@2D;hGXVzzTabJXJ%(+PY;jYd7EWfVv;3sSwteQT^ne2D6v&mNw*xo z_{RCGsTavWj-8Y@->KDV=U?eqq^u|vi&F6@m55SJQ7Rdwnxj-IN-c|0%cE3FlxmGq zZBeQ{O09@e9Z{+?N_9o4?kLq0rB+6%RZ(hnlnUFzZsX;7aU@bMUA_lV5K$aLRuK0RK7pZ#J7O9P< zw~N&EQEF3^+8m{Bh*Ddk)Yd4qElS-OrQQ>zwnwSHD3y*<{f1KVV_*5A+CqBIUu`Yy z!ER%;mqxc=eEIy<#L4(aMt?bWx1nK1+yD#jTk3TwaRKv=-Kh0!g0FM4qP*IQ0?aq-#jvfApi3`5=Mg)exci|FF$FKYh5nm=6g_tgAd zHGfCVAE^1;YyQ@nzp3WiHGf^r@2&YgHNT_gx7PgBCAfU!{42wz6REfH94E8pag~IQ z5BTn>6ZC52H1clbG2{o3XOYh$UqpTu`LB^*LjD@^50QV09LGSeMBa=%_Hd! zVx?@4EZFxsZbc3{6aKW^1?EVuI+L3yIribQ=eVvv=gElc2$<-mM@sW@F$JvdNs@-uQImoF5{jvb)8(Xe~UnH1N_J4IA% zj7Km)H`}sY?6^n*Q-jia31#bJn3wk>Go5M*WXvDTN-Q}56i+li2a!lLaa?15W=LYG z!&JnYA6261S$N0%T@qWKBVnaJphWWX5KY7JJ9a{!#CXT=+zdvN&SX*IM_5lJovNv) zlFr1O=3Bv=dI$J3n(u+HsrM$Gys58CIyqCfo3n@_3l)psr4e+%s&zYpql%Cmzb`46T?HCa`h^dzzV zIWSFF!`PILph(yppn&LLupcdYtbQKYTK3(#M@K6hnbkwC#{}}JS3gd(_q|g$6RXqO z+}_<1Z(rNqX>}z#FbJ_#5>MUSa!bqMZcP6sX=&L9J=)h*%vw{o)zU%}3nt07y8SLZ zSu8TObfo??7{bQt_7K}(&5|f6I4g9Lb7H(Zb z!_|xWfKYRZf#po8l7-o2Sbq~aCVNp@*4yoEDAnfzXCyy|bz7{u={&y~yoEWZnl7+P zE~rd;K?Q@a8i}`B)2aUd*I(w1)P{zC*Z-bi11I9!_DugGHT}lVQzw4D?{ly2D@rV3 zB|n@@ZTQbuzY^Qkv#+r6t0!Xk?y<0d$ES0iGww;zogXijt6r{D!bUw^tYV7>p*QOB zLasbna$Es3Ualx>L;2X=xj8ZzJSA5;om;35h+nSaSip9lFXZ4@Ww;=|@tnw29jO*7 zu4mVcxu?@MD2?S3^;9W0T@@Ae&|Syv1DTAyGrc1{U}pz1LjywtyY0T&!7K{TFFSju zdB_#>fH^l`*jpUhHDvcq+kI2zO5a@3L1oHy9CWNaSuAUQ!Y`J*VmUB^DnHYQW0+?o zj^R>qw&>NzsEVFeiw`n~Jhoqo@E(Q^OMW8*kqPr|oErm7AGESP{`>O8^q z!f52sfde<&TaQopWzP==t8d6xDD$DrPwsiEc(+(*Q`XwnM1p5C zcSB|-ZsxMTJ#`^A($*BeHSs0bP`5|xxY5`3v3aVM@BN_79$wd+=3%%L1>-yLu zb^j~So1M9?zc=uQYDq$u>nR~Wth7`wn*qGwd+z8>lEQFVb zaBB!-%Wg<<>1aUg4{y7RDK0DI1RlsHg)P2QepX`-I1TI>@d`*AnI!Q>){!_@UD&R8 zZ#Ido4H^JRJRHJ298IGBb^{=ZkB0C)A$%f)9|+-m2=fRuiScI*fF!Pl@InalK4KE> zFBkwxd?|!4hwxJ&%xjBD^#3yhAc=V!HHr9n10ab%6T+Vh;g>@A%OT9~7n2z8-wc2x z{&om|KZM^1;U9%Czl%&_yv7%VIDz$M67jMSZV%z^5bh1(YeRTr2yY4D?ID~A;hREu zZwMa<;lm+(G=z_b@CP(LhiC7^8#xDTF0p){&W7yIhw#UM&0a_QzXUdW8}SRkW-lZD zV#uFYYLhtr`U+ys+sGkZU2@psTp17?598*rr#8bP%VLnl4i-CE46(S0#V!`RS!4!O zseCfZDWkkH$}OY(@DWB!<(W~g8ReT*zS*EX<(pN$S>>BmzFFm)RlZr}n^nGp%6Bj$ zbGRXlPb}b`Qt@%jx${uC^N8urBcwZzi0(WBy7P$V&Lf;Vk7({Zg1PgE1>?X)`S2OQ zC@($(>O0K{$-5lDc(D5YXJ*dTC-Jyf8P8So#bW&`@NU;7+^WnS2JO^uK*e&=8~2K{ z>PCg?jI%IN$+?s2G_kt4PvaJftMN6E77pUg8ut;e6xpTmF!3spJ2XBE!aa}npCVo>@)sKa9q~Gmf7JL(#Q5;~hQ{9_zE0$Ijk&j2 z>qUO0@o$LjV9#LuPON2X1MUxy#G8n5K=o_PciFmLWJKfJi8qPxouobAMGJ#b(3tO{ zb%V$sYRq@f+9LAD8b3+ARfL~z^nZ?co5+Z*Cf2CcZ`FipGCVya#8Z#xD@#Ch`=Q3)Bfb@1VH&?h zJS_6I#&O(Xto``1gyi$AA|4Uhpz${110p*#-a~m%EtjJW^1WJ4L&okDsZbulxP@RK*?b(4{C`aP&~S*7Aah1l< zDqi&ucE>bU?E}wf{JNI^tz{SAQ|PbLa!AYlS~^-jq~%2|pV0EtT7E{$m$c+r%(&my z^81wN?|*6hmc}=Nqg}t2J1LRJH0JwGy`y=)@6=z^{GVv~Db4>AB|a7YS@W+_t`NDZ z@vkYdc)IbPFs^#fM}uzy3xf`oihsM7He?Jw!&-h&%X3;jt)--^3$tEs0@8B>Sui!% zDWyH&{3 zLiI&AOn~$>&f3>7#yzOhCV|X%7)Of2P^t6`z zjt~{s#2e;|(~wO6*l*S`l`7Hhm{Ec;)!~LZ4L^=|aFYq%pyNKVq<#Md*6FyvGc_ff(0wsAr`O-AS4!*s2aXAbFVWFAUM*U@4WBp z++)9(zx1diNlcK$6t*Wps|J=SAI8`q>tluWpI+G++Q_Tb_54on?flOAr#ox;-QJJ# zyI+3h8`X`1x{>d$t{3jEwoCpUTX22+ocI7HsZh}-%a-ymWrh;U=W zzDp3%WYHNCkC5>UMi3=q?jXuHwC6b*w77Fgy7<-?4{r#eJ69N7`q^^X>8;eHGmL)8tZ6%LOD|IiyDLqzrPqSYQ9u77<-ix)Ph`}o&DpO$2F`5DsCG({7J;7C zsxMh)MWf287_Q-`ES6SWvuJy+FR^mXaF}DZyyZYqykR?)V%=gFFBh~6*{t@kKBZ^0 ziA*+^$z@JysmA04KCWk(GfSprI`uL{!ztHh>bdEhmRizMRm)B_>n510W1213uqt(n z>q}mJ*{xfF6HMjjQ%%Qq&9ZAdtX0FFwT^YS1%ILGn%ywduIFIl^pj5)7aaRJgr*k^ z$DK@PP8Azw!**79BHA|{MzANb<=_CYLw51Ph11$tq2yVv7wj{Y^L#0LE1T0ZQ+jsd zp?wE{n;XI)l3sXVtg#&AtkocrNYuYe76r9fT#dDZ+l=Z3|%bbwNzCUJqLh$FP>nj)3L5 zWr_ggXL{LgG)%l@-9n?#(U?+x;|S82wPMvV8g!`tlSbf&qi9z!{U4xrC5UW9qZq`C zmq7OrCgFDyN?iYc`eooFVki&g%Z3z!9fzK3e-49a0T=c?km`^AFVLX*sP;t+SoR}? z_le;oY?mPmo=mUejx}O92^;+f3C}x*Crvd%^U~`U^BUkq3|RI7@+}g>N!YGI4(FRj z5?VLqBfZGi08cS=K12~5__#;{nOGV(ISRiF643t^LBj84D2NwSrHMi$Y;QtGJeKcM z4SsKPoKA546Kga;l}NPLi_{?5$3+bK_;WajrfANSmI zKhDg%GqVRZO(P{58MLMm-Asj^LIA@wK)rPQ@~uxs!hfV%wq}BRy>su z>D~jA))#7xOrv#{wEo$^cZ!Q3Z6MSZDLcn%fFauSV%Hy(Y-n~O?pv`!6UZ=dB%r5Xt z%Bw(~ig;_T)P6*ax3-Sc5$+p8>!_+7M#||k}W_mnP_{KQ?(swFZ*`Gvz;&quF9#A zCAZ~?iq~=p6WeW1xb2chVxeK7jL~|lDMmft#Z;qnFO}xq)*^yO=PlQp7|rh}HAS=K zE|YNGQl(WDatnA}Rr`$HMpimBJ-stGe7x*Co*%Afr056Q*gIoIGhZ;r#-Dm%p@eT@ zDB4@cNIRd>Hg(5hmvC}?ANXP6o}zu()J1)NCO-EgB0}FT>EnLu_;ouBU|U3xvLiA2 zYqg_*tp94W9=4o{F>oh0NQG!Jh6(QE+T9LrZ{#+s%TmHwEQKrV;hhf@?Je3jLq*7~-(}VC_7lfad}eDePm}gok@+3J*&U&V3TthlgWgc(_~m z&&Rsz#OvTuQTevR$nnuQ&Y?tcu1AewALsizVo)>>d$hj8sP9+UxIXT3Ro@i28UspA zoa-McCH>t^{0`3|Zi(3$dcUZRT2U^Dn{tVG3KgdsAVrg_sMqI_3iV~%YL zt)a!e2$TFZ|6=cL0>85O?ru{%LiLGK1KPH4wk@&G6fGV{@f|eFRMR}g%a~!v* z5=VNz=Y8Mvp7-1@_Dk`xU6y5uNtW2Mpowf~t>*MAS}RMWQzl>i^Z6S~&);Z1HFfRo zy?gi0ztc7!zjN-zJ43Cnd=7q)LY2pmpJgHAqWF3dnJX&mnE9`|%mC1m83+MwKnJiGSOP2s9tTzc9|pp}M}Q4L6zBywJ_EoYuo>72JOvB`Bfw5z z7qAC702~IM0geL4ffK;TfhiybWPoXajXnkBfih45J^{=Dp9Ee6UIIQ1oCjV8UIAVO zE&yKzz5zTe#U~~XPDs3*mLBw@5B=DPer!TNhS0Yz*(M{&^yzXbnReuGG9^#T5sAwL z+J8(YWv?8Rad}owO1$7Xu8gHUH!s`e5c<1IcB8lZWK_mvi>yJ<#tvn3(;m8d9Npf5 z?vG$7_G1_$(k&C!%u#2ql+1+J%h>k3Cx=*XD(OC~^&+uYPj6rU#(_(vi-i}-YM+Q-h4xz< z-{zfI`78A5e^1xxtMv7XFTi=W{f(0#zrP_@@Wl2ta$;>?!xW16Dud!%#2K}%AQyve z1vrll!}jQUNo6jyls#9h z^(^hX2$vA;Ux(Jp4~`*!V<&{R4`8->SQYEEE-Alvjo&?CU1Bx=43-9)a_BD*2^DBa z+Wj}6bTE7;ceK^|`vqT>g=L_9JGsTJM?VTnHCTraqFC+L>QHBs9akoCkD<*= z#13w5+S0VQ6C<+gc_z^+?Hw~%G+?PT%Rm9n?98ew1hS@Zf%r2q)S-^+Qj`6bo9csZ>-76SuE92&# zciggQ?v6yd(~nGdFLF z&+q#JKUewrAwR)UyBzGW+rrVA;7T8^Fbkm*smk;;PNi}>Sx6T%4unJ@IjcBXPUmuh zeViy1rBZfWZn#RJoSP{)nQ%IbGpC#_x?Z?uU&&!2cKpD84q1PuHF9;k7DzU9TF6O#qOJkkJ_>VlG^YyWi?1kEt(N?dL z`h31n7LqOP3koD#T4kNKTm!em(gS`Q;M=4f?IoMUXa|e}roQ_Do$nNrn4d5Tm^$Am zCQ*M5;8<{OIxrr5qnO0}+A77Gs@tk&r7f)8|Jk!8?8-!H&T|sEf}Ae7+{0Yu)i+Aj zpmsF!OBGL&rIJ&~JY>JX2W!`@l)OY1TQARbtVZA0A+jE_g$F`6*oPx=6B$)L2Iiqmo%@6w*1SsdTFo0YM>X?#LjOU{+(*=hHSg5CN3%N8kw32W!JlH2*~NPc^@# z`RAJ7*8Gm$aZl2Om7){kkP(e{$oFKd27^Y?ZB6|Mi4 z>=*gF*8f9pL%oR2dY>Spld9jr>bbyrRr|qVw4d*(Va*aL&&_)HQ4zsgu*z8@xlTUf zIcGeHP|75|q(oA9kw)BNRZ(UqRhhvSo-RrxqvT{N*KwKc<;lP@mSWx<9UYZS%`-@Q5Arg z!s=UXH|u4#N)YZE864K~FqnQO-G$$}TA_u!t#GJs--#BHf5OK0@rE?*8-rXQZ#Ayl zK%K#e{Jm^si1H*BUYLSTCXc_b>+3xns;*7e%bVBK%R9@IfhePh$FticlQ#=PeY_0f zaXc9h+n^SYzs*@D3NZZv@t!k5pi?B~H5sOfr5KVW=xE=U8c7GI?*nM%hdO z{f^f8vA;~;0_yvbuNxPhRc2f$*VZ27v+(;d*d$YLeVxp^ih3`@$ny@zgo;OIo%Qj~ NU=qFtn@J|#e*t3=f&c&j literal 0 HcmV?d00001 diff --git a/Part3/09_memory/drivers/screen.o b/Part3/09_memory/drivers/screen.o new file mode 100644 index 0000000000000000000000000000000000000000..6b5c36142a707e4eaebfb268170e22d686d9d8b9 GIT binary patch literal 6100 zcma)Adu$ZP8K2#Iuwdgm`v@^1Y0e5XK$~&g&e_`~ zm|_AtQgOYu!Zb-0)eTf>tNc-_w4$h?Rb<{t+N!RS2&t-6R|3_+mf}<=C2DEi-#0t6 zx96lvM%w+&_ndFOZ)SGxo{c`SK~WSYo5DP-OfhzPfh}p}u#7EWwXCCXJwH{SAF5{i zZqE+|*}jGODQ(6I&REqGH)m#M@)v`J==9_YPN0{cs-Cf?%c9_HM)j3wiTqDKQH++p z+pZKkN`>>qsHThs&al86qdfuJdwbc(=Wtr=C`lhjMy;P7d+P!ZT+2^+duDoOW-Lv* zvqjtUQws{?g$pz#Gg*uV^P@`PeEtT7b2fr`}nL_M;DbM}x~R7RK|V46`h5 z4i-D6i_vQM|LQg;R6bW{q$1CTBb-!@75-X$>ZS;--VSI&EksM)t|TLrS#&X`C@a%5 z)>Mz<-I>RdVux0YE;!n8?PzrTN_2`Hs$z$R#+l{4932m!a$BGEW195`zg&z?`Cbk% zc9}(~dxCc{_^f)qza5L>Gb&!1v;#r#hlZ}rvsTQWLeS1BoVWL|^2|z;8=&$5T!~K8LY~|}IiFA} zNA*!gP->dzbU7H#M*UJJVY%HYQy#AJL(}yKPs5<6ewKbAI)SlZz$OEH1x(Ns7#STN znmz&k!HL8DrIYAXW(0F^)t+3}q~7%~CpFMcz2~9>XGYJBYkX~JJ%P_sRp32ZQby&n z$6hF$KX>C!W$e!%7oyk&vxkGixsNpr0#SR#z@%F_9&|rVQSPyNBxGz3)qpQOxxMe= z0nyfWs;rD+zY98m8lqo%FgktUJsOjhGmTt0<*-L7c2pO}&W)=IUS4rrD5Fo&CNFN* z&L+FNy9;lAbmQE={Dn8qeSGKg^Mx@kEbn`7dTbAlD}G2gsd?){Gg9tFvG7(-;a&Z0 zyjF@s@o%<-sn)8MO!YTI5R!d>YS&DsrrgAQLX!!I`2thC|VN-|EmDs zE(n!d&||OTQAXat+fSr&3w70DHYbto19dN_ymO4~GY+L`2ASV#%TjaGOlh$DeQchW zhWB-m!V2=e7>_bCfw%2{h49aOG`tdd7w<#V8@U%YwoXLGkka=-Whun!u-D&9P6efD z4MeRXBhPTk&#GwL$3a!o%QM{Pr_3xzfBr^t|G?MKeT)w@jGjG(2SwO(`Se!H3Gu0~ zv8gUr^9uBptwfHXcbce?29+U2VAHVb@NPR@TnVAt=@OLY-$BC)%^ey!QQFCYI^1Q) zu}j1e_!+o#dQeXLL^#?SGSAsL*~5_HC%_2)g4_&|PCHf%_=svN%x#Z(;gR_UNw4r4 zbo#kY4my5bz=ExV3~3}eeg_s;H`naV^6(;04JqBd zi0szZzxc=^1^Rv;v-z7sYCR?bQurcLYpsyZ1?iH`3t%i7v`SGng~(fV1KSj8g5mt~ zfEB~ll=*ir+7zmg1*$N)I_!&JS!tF^ZCO$_|A9S|x=)i~mPp#|cu*xY+d`mm=@M_IktqreM z8<3uUJ(r6ob(ZMU<3`NR1?wF!a4yH_BunaMEZg0k1JGWuGP!gzqj!Z9skp)V;yE+c zm(J+YqBEZ8%?-p8I*Xg8!E&jrVTK(WI_q8j=)@|MPF2C|eDKFVo8CYm$0KH_{1^aU+phlWx1OE!>z4H+E;TjRR>Noo5SlaTIoJBow1c5O7u1k7+F(Km|24%39%f_CB0v#<-wX#*?zsrvpV-y`@8`rOYAiS)j)5@5ZoutM#i&HHJTiPPct&x_M%V%Ye;rEH% zl>OV7azIlSS9`rju^DKu(L;^Cifmnt_MH02e4qO3OHkpm)j~!Gs3ZS67qc)}yYa}c zr6Yed?@{+%x*&ZVf{y&qIXdd2+({U+lX&Du%#p)~=jRG{LNQ*%BR?sQj=I~4^BUyx zb5fS49l00tm7kKbywi~{fn0tl9J!b$jsGa*@{{1mcXD%{C%Rk6Pk|%fW6NP)(V*%y zFZ*!DA<(J(rAaitKCb3*or}cwFrQ0GG_IJg=3(?1EjJIFS0>Q&u)4yP)uFPS@{?*uJtMRW^jnLDD_f|j`=dMjvIf1-DRmbWyba=M$!M)DW&$hAT8SEUe0@-wsO3!vp%A^q|fM4X%0@~(63lY6!-ji#;5dQiI z;cti#{*DvE-xMLnt-*Jfa4{kDn+T!5LGXVk@Ew6S2yuJzU@MT_IzrrB;)IJBdz$bz z#4G3#L5~UghQONwL%3RyT|XiG4HClNc|ycN_k9H~+8N4RhJSZ#GZy5B@uX{=2{r1pbE*@;W@+zrdA*c-9HJUEq^~uM64~xL@!Kf__Ed zuLM$^$=`&a|0!q%b)s>D0&gRPY^k7meQ@ldRGhy>U>K-EZ>_*R0*?r!Jd^xQffE8X z%$N9-N5aPhrUbG`Zm{2scLGhr#+2+CdSArU_n9ox6*uE7(wWP#2r;|#PAeHpXS%Zx z@qWCs)6n<2rEw#kN$M2_{IVqs=vER*Wc&MdTp1!6Tv#HwAT{y}jO|8G#k!4nKP{}! z+30M>wCvxsz*ao&`!&g^(f1xD;JGAv9LWwth;7X6u~qn&WvQT18s0*vi@QmGUjh?b z#rc~3KRt>^+K?a8Yn9GjvS#$%@ljwWMSK*3jBl;W23@uhLEPgSKz6sy(mMd>VKNX+ z>d{(rk9!j5AFV^m3(ZfCtD`S%&}AbqYH=}SHx8NG-)rzke#jqvsinWC(I*?4H?==P z_y_3(GDoOe$=Y#FkAexexPjRIDDO08g+DOIz>`h- F`ybl^9Bcpp literal 0 HcmV?d00001 diff --git a/Part3/09_memory/kernel.bin b/Part3/09_memory/kernel.bin new file mode 100755 index 0000000000000000000000000000000000000000..e08a14709dcaacb35807c0aa70615ad825083add GIT binary patch literal 16768 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 literal 0 HcmV?d00001 diff --git a/Part3/09_memory/kernel/kernel.o b/Part3/09_memory/kernel/kernel.o new file mode 100644 index 0000000000000000000000000000000000000000..0180e0983c8292802f6a09fbabf797df09a240f6 GIT binary patch literal 7428 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 literal 0 HcmV?d00001 diff --git a/Part3/09_memory/libc/globals.o b/Part3/09_memory/libc/globals.o new file mode 100644 index 0000000000000000000000000000000000000000..f1d0b0135dba8588b35b077abf1937d32dc3cf39 GIT binary patch literal 2400 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 literal 0 HcmV?d00001 diff --git a/Part3/09_memory/libc/string.o b/Part3/09_memory/libc/string.o new file mode 100644 index 0000000000000000000000000000000000000000..59b3ca41f88f9cee35ccd62cf5053221102fb3af GIT binary patch literal 4948 zcma)9ZERE58Gi4z<6N*w0%0pD-7r-VuquudvJ^-Y0`&4tn}VX!A64o&H@0bFXZF1j zAShK$H7pB>2yI;@q_tc3V_LVLtm~HoEg##uDbprpKc%nMO(WGb3eW-~YHx6vb|E&^>Lea^UU&az+GoITg8mHK8&SITDO+(UZ#pz%&> zXlST(fIs#w(@C%QtmxQk&R#x%8{jWN{*XHgG@7l4%rA8Fczhk*l#f zgEo1Mn#+B&NX9A^D-mCf=gZH{{qjRhqF7mVuQ?Pe#?iRXp7AjszGmK~>*mZunAmip zY|fPXjMC-be~E%`)|bpm@l=JJ&`YQ8lHCnc4S30m50*hpJXZg~1fuo&f=#a$O#B{< zcD^_=6Xf}wehusDMgMQnFd^i*N3`>5#&S!nRnDYf+cfKX1Y>;$*iDM za}Fm@q{cb$YFp&OM)Ut+q>6d4x_DV@clERy$_FvSh*+V`SL}~{KJ_0=`bexRpLDq$ zi&x1%fZFPK;4pLL=j z?+pdDH2TQjxRV#ebbtvW-PzPedMFMx5Udp=1s9QiZWE^b089KES3dQ(+&$r(#lv&+{wjy|3RJm=sSg`Rz40`K|HQsq*(|CPtrwAgA|q{8 zk&w63jbu}JAKPqaxEmgi3y*2(v0Zw&E4F(JQel5c*@q9Y)e(k&fu$vUUKKvA z7*`1kZ5|M{KCApALC%+CxC@8yN5Vf;fN#?8D}g*GNq45=oLH`IBg%4ZU0q{1P`A2n zxwazI@Bn7?RSFne!=2&1jX0o>P&nKT9!FWK298op+tw7QW25y=?ANpEyE~dR*oSI7 zXMGh>Eub*l+sM#puVR+~`q-uQ$i+#+{_uMn-2|_?2_pC5um=1}!Xl!%&n#=|A!U6l zR!yf)XqxuVx@G9ao1fQmI5UtW?pk88mgJ~IgeNVNO~r6niR|N}Rw0&lgV%@@4>(3Q z=|L^@PN<9J7_ExCa6@PbX zYN|UmHPw@Lv)mGX1@;T=3mF%T+wCc*Wv{@3<1X+rn4)8hj~Tah9c$%e3z<~b8jSLN z=7D57k*5<@K3AZ$b*$gc^(P9+OorH&VCf$@VUaK|U~Tz0I89 zdNbu|gUfQsE$Q5d)nYq&)Y0LbYJIV_BNlIuwYF_sG<`n4E4f3{P8=fbq@k^j1cPUB zI-?llqtERsciZcXSM(jrYMv+t^!KlR2s6R=NS-f$&qn{pRmDG#VRdaU@RrBF1YTXn z9-kDni2pixb@h7uu?2ntyt-aJ-dW&pf>&3l$0rteeiGGn>G8U2!1IrSSJ&YJ|Ard? zyuZQJYeD*S-UCpo{{b+TFM4Sd@LexF6rdW(xFSHci!g3XUklJuA7cN=B8!Mzv+53TAB+BiWqVJ3)vY0~0ChnuJT&sEP|u%u7IZ8Ve>m${o=Em1yD=@Z1`4|3I%n!tcRUJv4N9FE5~ zvWoXD=)*%1@ literal 0 HcmV?d00001 diff --git a/Part3/09_memory/os-image.bin b/Part3/09_memory/os-image.bin new file mode 100644 index 0000000000000000000000000000000000000000..67a76f51b8d064b102966242e589fcbc2454c3dc GIT binary patch literal 17280 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