From 75183113f4f196be35a08321f6eed60776fa1e77 Mon Sep 17 00:00:00 2001 From: iDunnoDev Date: Fri, 25 Nov 2022 11:19:26 +0000 Subject: [PATCH] Final changes and tweaks before submission --- stage1/bootasm2.S | 48 +------------------------ stage1/bootasm2.o | Bin 3380 -> 3080 bytes stage1/bootblock2 | Bin 547 -> 458 bytes stage1/bootblock2.o | Bin 2736 -> 2452 bytes stage1/xv6.img | 2 +- stage2/bootasm2.S | 85 ++++++++++++++++++++------------------------ stage2/bootasm2.o | Bin 2824 -> 2628 bytes stage2/bootblock2 | Bin 473 -> 459 bytes stage2/bootblock2.o | Bin 2452 -> 2276 bytes stage2/xv6.img | 2 +- stage3/bootasm2.S | 84 ++++++++++++++++++------------------------- stage3/bootasm2.o | Bin 3076 -> 2868 bytes stage3/bootblock2 | Bin 545 -> 516 bytes stage3/bootblock2.o | Bin 2688 -> 2492 bytes stage3/xv6.img | 2 +- stage4/bootasm2.S | 68 +++++------------------------------ stage4/bootasm2.o | Bin 4808 -> 4504 bytes stage4/bootblock2 | Bin 1088 -> 994 bytes stage4/bootblock2.o | Bin 4368 -> 4080 bytes stage4/xv6.img | 2 +- stage5/bootasm2.S | 25 ++++++------- stage5/bootasm2.o | Bin 7072 -> 6880 bytes stage5/bootblock2 | Bin 2010 -> 1941 bytes stage5/bootblock2.o | Bin 6464 -> 6280 bytes stage5/xv6.img | 2 +- 25 files changed, 100 insertions(+), 220 deletions(-) diff --git a/stage1/bootasm2.S b/stage1/bootasm2.S index 736c92d..d508d7e 100644 --- a/stage1/bootasm2.S +++ b/stage1/bootasm2.S @@ -38,52 +38,6 @@ cons_writeline: call cons_write_crlf ret -# Added Write Hex and Int functions to help with debugging -HexChars: .ascii "0123456789ABCDEF" - -cons_write_hex: - movw $4, %cx - movb $0x0E, %ah - -hexloop: - rol $4, %bx - movw %bx, %si - and $0x000F, %si - movb HexChars(%si), %al - int $0x10 - loop hexloop - ret - -cons_write_int: - movw $IntBuffer + 4, %si - movw %bx, %ax - - cmpw $0, %ax - jge getdigit - - xor %ax, %ax # Added to handle signed numbers, it adds the minus and then neg's the number - movb $0x0E, %ah - movb $0x2D, %al - int $0x10 - - movw %bx, %ax - negw %ax - -getdigit: - xor %dx, %dx - movw $10, %cx - idiv %cx - addb $48, %dl - movb %dl, (%si) - dec %si - cmp $0, %ax - jne getdigit - inc %si - call cons_write - ret - -IntBuffer: .string " " - # Draw Line function cons_draw_line: movw $0, err # Make sure that err starts at 0 @@ -249,7 +203,7 @@ endless_loop: # Loop forever more boot_message: .string "Boot Loader Stage 2 loaded" -x0: .word 0 +x0: .word 0 # Setup the static memory to hold our variables y0: .word 0 x1: .word 0 y1: .word 0 diff --git a/stage1/bootasm2.o b/stage1/bootasm2.o index 879d313ba61aa1462066bae47f3f5b3ad4463a09..eb7aeb52c445e979b3c49730bc00d203aa4ec5a0 100644 GIT binary patch delta 1137 zcmYk5QAm?f6vxl`);>Sor!9;b32W)vs#&lIWeTD_^bjNw7Gf`Zs2CPPp%7skMS)`? z#Vy1rNTi2)sHm}Ij5XHKIa^d%7$fMhFo+&v^pJJ#cF=oa`<>taobO&P`xf6mzU`)~ zDOd}Yb+Gci8@7NQzJGvQ9j?fNoAi?hyIMe6gOYOgFF`P^5IdV zD?qcO+Ny6Rhws0}XuMnstc2^zr9I9ZS{gDKqpbrgS8^!bk;T>I>-02!>-{G}_!Ae! zfYyg@F|QT1f<@f1bZ7+>Z!JUGM-ZKxh9alw#`1#Ig%F}5uJ}3fgyO^GbBbRePbxk_ zo>%-bc}nrC=}1xRtWK z%>B#*%ywocvzvK{d6;>G*~dK2Jjonn2AOB8jKB~F!_14!OUy9y8uJD-%A86j04f7rI6SIYg^wq}nGXs)zkRj;;sF&Oc^zW?ZO_Hqu&CDH4 zU6RBuDgM?j$#=d`*JACj0dR?5b*YaQZq}}=rn70Zrg&S%G}43(F_L}ofo~RlRiq2~}~) z`5+;2NfS%RVq(EW7$r+cKk!9kZjoRvVMLTf@SN=#=cMoZ`~Uyvyw7RRId2b?^^8AS z;XGu5;Z{9-pA5xN1n&auSWQJD7@9G&de-ckIpO)Wbqf|Q>MejC>+MWI@_EM_+rfQa z$QHdC%G}%u$y~<|*gZDX*JJITmMu!=^10BXUK8Yh?zs~@U~j`IBJ5T@7KFHgSj|lmmy#7;`wq1 z4z^+LmN`Bqb2sKre%8SQdM8hNc&INl&@=WboT=p5BKdIKAcw~Jhrn46fA}(mqw@pd zT)QbhP*v{XI;)GPuyQz8vimNRL8+U6xSqNBl?@L57B=>o4T?Xkp~6rW2}QKXQcd$l zf{~!6X+bTdVWL&a&rZ?6vpiiOJh~e0s9o>e+N?huhBdd;g2Al9cNAYpg z^@`tzdaL3Oqi$6Ean!pMe-5==;E~4QJPONypMWk5Z2tr3MqjM>%jioKe+7M|;%}gL zC_aPUsrdWoM@FMLhT;)VVrO;ny;e)`Xi{T6@LQtkm5U0PvBy2;jQ_LqucA&uWH)@Yg${j zG;V8ajzt^SN4EoB8(Uj9t8sHn4C-5AwehB=XdA4H#@05kYmQx>r?;~NKrMcKJJwx7 zY$tXQ_Y+gZBSb-z+b*9!NjyzV6FZ3)h!=@+ckQ?d&`ZHBqTEJVu%GyV_>lORI6!<( zd_{as93p-v{vztIwybZ&Dp?$yfB0abn?StPvFVj9$Kii}yyK#5j|$a0Q;uk0N67 z@-s%U+T`PPI&skCW9{OS$o!4S&aQ`wLRi;Y|Pl diff --git a/stage1/bootblock2 b/stage1/bootblock2 index df79fffa42eb0ec4d47dff13442a765939c968b3..5e607323f96912b821e5a953ed52cba69fffb788 100644 GIT binary patch delta 229 zcmWlRv5LY#6h$X%2qHS9N|}C1C5Rx}*!UHGhIX!7$5a<9J0(A0F+>R=gk(SwQn;0n z#$t;sDXf;1@lAK%x#vD#zqP*qewg4JeKuhWJvXcWOz>kbH;`xWg+v${uBh3pkeQBI;t|0v98J#>Ql<+O?gawj*)_;;G`aQaqhg5#tcS zF=F@<{iI)r?uqTM$W66gww1g5sGNhu{ppci7o*3zQx~7MM2jcz==JFFB{g+hDXK7w LcPOXLcA&l9FXV4n delta 318 zcmWlRO-lk%6o#)kh=}tMrGpGJB&}iy94kv|)0fMBO>QDHutnE_(DMtD`2#Kn!WLrP zKnP}0tAT-th?o#Ef|%MgoqJaAdESrvq$4!n&4eqph1wQ56g*|}&0MK3dP+azDJ*=A z!)eS)R(WN0t+KvR-QL;V+pi4-;z~D6piiwgxqY_S@syWOHazN3zx6{JS!;wF%br60 z$hRH`84~@T-j>ei574cD)WVCHE$}1bl->kF91*A?1C?fh=I4M`ieRI*QJazoW}bUF z^i<>`j8g?jkWEY+rz4{Pk&(l!j9lX!TbygiRp{lwOsU}LV2!N6&0dkqB6tcf*V8;& vsn1Nzo(>PsHpZi%>YrqyV9C%SDHXuR>8jtjOYlFh!Q`3^zq(=g*A1rswV;8I diff --git a/stage1/bootblock2.o b/stage1/bootblock2.o index 27864b83088a3ebd50b97bf0841675ac0764cf99..689ce3d9a69616dc94764a0ce8ec7174a5f13fe7 100644 GIT binary patch delta 792 zcmYk)PiPZC6bA4&lYiYHVIgUbX^cXUAeu`d)I+`WB6tu%y?7BXMNlbGD%HiJr6E%C z7@_oLErMQDaET?vWmy*+gFUn;6ym{yNTnBVK|JU;wInkzyYu_r+Z~48*Q1ZqjlBGt z;6fqY6-0U_hzK|OxlMc_?`*_FCR%g3mTPh?wa&F{i)-T@u47%tx|DLcl-0F1Y94Zz zH{w1Enn1_gNI&OuKi5WY6M3L>Jf-shxyP$*F2y}w3%TrAz}G{8G2&sO$>0 zB*$boqF%{@_^7t!S#eZNM*gT%(Tx1kQ0Jo4&UKtvAN2naG=qg}_!itWJPWTIo`YM4 z9k^roA>20n2=<0{NFg}iz-503dWO3{Y@p}xHKX2w1Ec;9eqhwM;3dO9;1`DVH~u`Z zBPfmFeeg$4O>NnsIhG*dJfo<%LEr+%cq!4^!^)!Cx&EAWh)$wv f;oxJKQA`_C8>PYc9wS;%)#Q=bG=BY?`d$A3s$I6O delta 1087 zcmZA0T}YEr7zgm@edp#oaUU|bwbtf7l8R;TmS&FFg<6pW(oINL5;=7dn!42xZGv93 zhP9p3MISerbQxGFWgp^NVSxq)!AK12A}u4tn<+*1yvvV6hn?;G{?Bv9*~{5=-H<+R z<5z@)!=ZEX0Mg6_01oFj7ni8BMckhKrDX@o4_0_9tEvwlIXapH!|G%zC;F-PtL93d zGd`vLvXmO@j7QVGE6|;l}u@)=}g-5el!mmkVpL8v1#3;p$q-CJmTS zSO~zNibSm%5>*$Fs6j`f<#rOobqv=owTieR2C1mWq7e%!GNCXL4h~^UmyofVNXDwi zW)0?MDaUP6ZpPe52K2};}Jr~37%#1gE zDK9g#$7&%mwTZ;=o4sjW_bW~c3}&+UG&Q!ISXlT&MQ(}O_(I;v({jFuAIzb3yn|by zoqVlL*yi*2MBi~ybo$&rwyEKk( z*}*{=KPwpbplcXkLtkKg6J5{vF1m~H1GMz8{|ydCaG~0A1fF1^*$Utpx`6Q*TE{qv zwlkhU>lwd88ySB<-)9aqk2Y=ABOH9k;5F0m8*Scf;9w0s%hYvvL+2UqM)L`5$_@^y z&?SsdqH`Iyq0JkP;C=7MV0j}z-$Iu$zK337{19El9B>5fT(=hYC;#&a^iHN;ARTo5 z2hcfrL*+4lxVrgtdk36pZRx1L*d7S_>zn;yzsuf9&@`6FSmfHmf7p6X8m;46)rHg4o(9teI%e|oem`!8$Bb!ZTvsuhmWdLsa m8T)o9wW_^2cslG-;wg)%S80|%R{*@Br<6{4p8(J%?fwf3wC=zF diff --git a/stage1/xv6.img b/stage1/xv6.img index e1da1df..7cd291d 100644 --- a/stage1/xv6.img +++ b/stage1/xv6.img @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:78f098d34857cf65263e2fb5c83bc70d1a99ad0dd995f67f2d1c7d6b1eaf71ee +oid sha256:efc9c4a600de243bcb4b6307cede9a7d30c5db8a43506fd3de3b514193f8fc40 size 5120000 diff --git a/stage2/bootasm2.S b/stage2/bootasm2.S index 690d4e2..94caf07 100644 --- a/stage2/bootasm2.S +++ b/stage2/bootasm2.S @@ -38,53 +38,7 @@ cons_writeline: call cons_write_crlf ret -# Added Write Hex and Int functions to help with debugging -HexChars: .ascii "0123456789ABCDEF" - -cons_write_hex: - movw $4, %cx - movb $0x0E, %ah - -hexloop: - rol $4, %bx - movw %bx, %si - and $0x000F, %si - movb HexChars(%si), %al - int $0x10 - loop hexloop - ret - -cons_write_int: - movw $IntBuffer + 4, %si - movw %bx, %ax - - cmpw $0, %ax - jge getdigit - - xor %ax, %ax # Added to handle signed numbers, it adds the minus and then neg's the number - movb $0x0E, %ah - movb $0x2D, %al - int $0x10 - - movw %bx, %ax - negw %ax - -getdigit: - xor %dx, %dx - movw $10, %cx - idiv %cx - addb $48, %dl - movb %dl, (%si) - dec %si - cmp $0, %ax - jne getdigit - inc %si - call cons_write - ret - -IntBuffer: .string " " - -# Draw Line function DrawLine(x0 (4), y0 (6), x1 (8), y1 (10), color (12)) +# Draw Line function DrawLine(int x0 (4), int y0 (6), int x1 (8), int y1 (10), short color (12)) # Define parameter address positions in stack #define color 12 #define y1 10 @@ -275,6 +229,43 @@ draw_start: pushw $180 # x0 call cons_draw_line + #--------------------------- + + pushw $13 # Color + pushw $160 # y1 + pushw $30 # x1 + pushw $160 # y0 + pushw $20 # x0 + call cons_draw_line + + pushw $13 # Color + pushw $170 # y1 + pushw $30 # x1 + pushw $160 # y0 + pushw $30 # x0 + call cons_draw_line + + pushw $13 # Color + pushw $170 # y1 + pushw $30 # x1 + pushw $170 # y0 + pushw $20 # x0 + call cons_draw_line + + pushw $13 # Color + pushw $180 # y1 + pushw $20 # x1 + pushw $170 # y0 + pushw $20 # x0 + call cons_draw_line + + pushw $13 # Color + pushw $180 # y1 + pushw $30 # x1 + pushw $180 # y0 + pushw $20 # x0 + call cons_draw_line + endless_loop: # Loop forever more jmp endless_loop diff --git a/stage2/bootasm2.o b/stage2/bootasm2.o index cd1591ed93eeaa460fbf7bd97bde1c0f6c395c36..fb7d9bcc4eab2acc6b712fd20cc470e3374ea57a 100644 GIT binary patch delta 596 zcmZ{hF-XHe7={14m^KMitHxF-#9|;-5JeP3q~he@An2fVaS#Wo9TchHqJj>^L0W#? zS}Ecng3_X+US-_(Y?!*mS&qsW9wR>Fu7!VN*Cv@0y|3qW2IU7w?Ek5u1)l)(z= zw1X3rV-8MJjypI{dB?#e%BK!~po|Xwq0jq1HFTLZ|09A*+bmb@iWS#ng)bR&G zn&sEmQ)^SW%pB~;9WKx))ha$kR*uQCOYtgRS(d%BPo|8#UH^EShCN)O{2=E5#_&GB z10DP>wt(Hd2cx`=+ztLBSIh7le<6OFp3_u(8AS&D6k82EM84a=W8^Ozc#?e3!1u^s zH}GTf4-Nc`{L>AN!yAHE8wpq<|JK0Y$$vDknE_PNE-nU6@}K@8J)oWVw}DR(rw!*- z^7a2&WH3PR9GQ^mIHC@B_MMFl!ntTv*3@91It;WgMWX}8bU30xcSQ3K_4cYU z2&vlna44){M##qj{B*sQx*jd*7VSEP1%QBHB%E7DC13VWX&0oWolbAK{G2V_xLxR%%jB(ts!X9Zq=J-mf)1MgXZ4P0jh4!?Nv|Hb?NhbPv|W!*6G zMfm^8a*Xr5vUoEVFl5Pr2$2^X{{gwHpj^2Zi{M!&C8h*%5$)Qc(!~xA4i1)XE{YUEEOZbRl{yJZrr#Tno4jbHFNQbk*}B#Sv5;boqy%Dfp?^KuNd~c%Fe9T}LqS zg+Fd#pC;d{TeU*yM6lFin9{Ij3yV|QgqoH_wnU9cdBK!2SCb9y*BC9Aw k34TZ4s2&NwL3{X+j?E2D>LcosiaBvkx7CLb(T4Z-4@lH@6951J delta 712 zcmZ9~PiWIn90%~7?I0tGb8a4T*yg4~7#>9NRAkGxXlZAcy0R%7 z#KR(}4ZmGPRPg4_Kf4U1Q;R2^h#<5uMMZQ2k)E6iR(~zBJ^b6t+SzA zj4k<%YN*5js$BvAnqZ}Y`6pwibYoxZ{mZrxqL~@ zEh-<&h5SU$E4n}6Vx94LuKr%jqT&@-i^l8uO|bfN`l&t>?x)qvx8CKee+sc`fj@pz z%=^og3T|h&P!OUR6}GVwwh1vBPY5dejuS%vZaHEare+@1G}Y8iUDGsOGc-!H#%c>R zIQU#}F%fXF90&^$A2$TgOxg4WtvMQM#UM*_2j^*WALnc2^PI1fZ97(c#L5EoL@G7P$9B?zzNFKY z85*+EFl;%4_OR_dTo94raVbm}X-g{8@ru+e9uole;0Gy$FC>L!@GWH?Wxs0KE?HqN uw#d!mLI6NVLk?j=RyLPO?`dlr>0EZ8C+`$ri2yh7uB?h@>0dopefux?sHJ=W diff --git a/stage2/xv6.img b/stage2/xv6.img index 4624f07..db2c998 100644 --- a/stage2/xv6.img +++ b/stage2/xv6.img @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3387e710619086765701b1604f260a81c230c4a84dd5f73519cdb7bd922fdd7d +oid sha256:a5ce5d8db69ea875e2a0f44fb290e72d69088f0109e960b031cd0ac8b05b254e size 5120000 diff --git a/stage3/bootasm2.S b/stage3/bootasm2.S index b435145..83917ed 100644 --- a/stage3/bootasm2.S +++ b/stage3/bootasm2.S @@ -38,52 +38,6 @@ cons_writeline: call cons_write_crlf ret -# Added Write Hex and Int functions to help with debugging -HexChars: .ascii "0123456789ABCDEF" - -cons_write_hex: - movw $4, %cx - movb $0x0E, %ah - -hexloop: - rol $4, %bx - movw %bx, %si - and $0x000F, %si - movb HexChars(%si), %al - int $0x10 - loop hexloop - ret - -cons_write_int: - movw $IntBuffer + 4, %si - movw %bx, %ax - - cmpw $0, %ax - jge getdigit - - xor %ax, %ax # Added to handle signed numbers, it adds the minus and then neg's the number - movb $0x0E, %ah - movb $0x2D, %al - int $0x10 - - movw %bx, %ax - negw %ax - -getdigit: - xor %dx, %dx - movw $10, %cx - idiv %cx - addb $48, %dl - movb %dl, (%si) - dec %si - cmp $0, %ax - jne getdigit - inc %si - call cons_write - ret - -IntBuffer: .string " " - # Draw Line function DrawLine(x0 (4), y0 (6), x1 (8), y1 (10), color (12)) # Define parameter address positions in stack #define color 12 @@ -230,9 +184,6 @@ cons_plot_pixel: mul %dx # does the (y * 320) part of our math add %cx, %ax # Add the value of x to register ax movw %ax, %si # Move the value of ax into the si counter - - movw $0xA000, %bx # Set the start of the video memory location - movw %bx, %es # Move that address into the "extra segment" es register movw pixelcolor(%bp), %bx # Load the color into a register movb %bl, %es:(%si) # Load the lower half of the color (since they should only be from 0 to 255) # and place it at the given byte in the segment @@ -253,6 +204,9 @@ real_start: movw $boot_message, %si # Display our boot message call cons_writeline + movw $0xA000, %bx # Set the start of the video memory location + movw %bx, %es # Move that address into the "extra segment" es register + draw_start: # Set the Video mode to VGA 320 x 200 x 256 movb $0, %ah @@ -332,6 +286,36 @@ draw_start: pushw $180 # x0 call cons_draw_line + #--------------------------- + + pushw $11 # Color + pushw $160 # y1 + pushw $30 # x1 + pushw $160 # y0 + pushw $20 # x0 + call cons_draw_line + + pushw $11 # Color + pushw $180 # y1 + pushw $30 # x1 + pushw $160 # y0 + pushw $30 # x0 + call cons_draw_line + + pushw $11 # Color + pushw $170 # y1 + pushw $30 # x1 + pushw $170 # y0 + pushw $20 # x0 + call cons_draw_line + + pushw $11 # Color + pushw $180 # y1 + pushw $30 # x1 + pushw $180 # y0 + pushw $20 # x0 + call cons_draw_line + endless_loop: # Loop forever more jmp endless_loop @@ -339,7 +323,7 @@ endless_loop: # Loop forever more boot_message: .string "Boot Loader Stage 2 loaded" -screen_width: +screen_width: # Global variables for the screen height and width .word 320 screen_height: .Word 200 \ No newline at end of file diff --git a/stage3/bootasm2.o b/stage3/bootasm2.o index b9342db5cc7ea23ac2d9ff59320308d3d322538c..b228aa4badb7509ad5c707533ba3cf0887344c6a 100644 GIT binary patch delta 800 zcmZXSPiPZC6vp4oZnDWPp)FmSHK}cqZ8r+S8Y|dZH;orP2-S=E zlbniy96M#)0!`2eU;e<%uFTBro!!8z?PI@SG}YU}dDR^I4WkV=f&cu-7HbQW<(M#=81c)Y}XYxNP-r=Q~$cD=V^oUTKqO$5^)ULl+du+1+Eye*J|=^tFL z(h}1zVHeLa69;&|qBLi4ftR)>_GAlLF>hZl%fP*;N@uP;pr~!&d++YNdLT68qLm3`WQghIoSf*$`hN ze?G+b$v+J7Jo#FP-;=)=;&0@qH~19j4B*B_0vzI?Wikx9h<}9Y`-%D5k!1Za@sijh z2ZIyj;~^d<|A}EL`s6`c>tt1cH?-2E?7Kie2f7+)j+CVVwgp-Uv_~lI6IY7S*G&jb z0o|#!d{QWVaM~)hJB27b!izG9D1_85s^`q9=i$8X|NncQ=e#dGoHLOb z${Mnon)MKiqS&4XJHQCvn#gdmwMla9EiBr%zqq8-RbEkfq-s(N6DhBv+VEoVOX^@q zfLY_x&*;=u2+s%C;98PndLrdv!K^VnzdG-jn>4`c`i&WBAiW-|{vTD#k$+LE5-@z? z!2vT3><+F&zvW=2g$8y8|3H8GsF|)Vk+KNEaAczMG0G7u?jEpWwMj4&@xu5IZj5|s7A=h!MV`bY_zdm*?6{~xj>ruFBySlp7X>X?wYC3)8{#1LVim5!X^hv4>OC0+6hz z74Rq7$eR?!m$T!FEea<>f?{^D--&aCXYV*c=foo<_KOop1C#Y8majL)oL$#|ld&+b zUZC9^i|B2{$DZizWSlMN?R1D^2?iVa#0m^{vdkI`b~??m>joR;v~0{^ORmJP(upUe b;)MeHY{=Gy@a`9E-5}^b;+?mcOP}^1DU!If diff --git a/stage3/bootblock2 b/stage3/bootblock2 index 01bc4ed003f4a4644fc6dda57aa1b22307954349..085487dda9276eefcde738921e6cb006882587f9 100644 GIT binary patch delta 170 zcmZ3;(!!$r@;Ad4zAhFw8-@~=vjVTb9^S&Yf%mMy2ClOLhhIGT|Kk1s!xL-PSTRhh zmv8>bP$Ok6#x$v3r1=*^4gW%hN#7qap6EQ*9mk>8Arl`L6&W4T`6l)d8^gY*6JJRD z-_5X~@9^X##(CCR+!+fPvgAO7$cx;6K<*YOSMEg|h`S2J1rj1J{Nb`dB_b~zCjVzt F0sv3xNk;$x delta 202 zcmV;*05$)F1fc|f=~)4^4vGXuJOFeA%@FJL!?X^t4b2d+3e6D1=;Z(C@BhOvF)}kW zH8wXmIYB~0L`6oq1OT)S!NUZJ-h<{3ii9JO%@E@7!@hcuiP(eq0DTNGz_bpqEzJ;# z*!S2m(zyx%_xXUrFo+aRgZKb-?nda2|HB|4ARr(BRf*-1CaF3dl7A$F`2c($I~E_3 ze;I@N0DKgo9g_Fr0mzBQy8xh$!;4-BCWstgURqgOSc&Xi!Uh1o0+Q&u{*ws-o|EGN EAtrZP{r~^~ diff --git a/stage3/bootblock2.o b/stage3/bootblock2.o index 49f36a765564ff10a61ed14fb740aeda4fd4a26c..641018c6758e21edf91ec9fb64dcba9d5b61badc 100644 GIT binary patch delta 703 zcmZY7&r1|x7zgm@ogeBH(ZbH^60+^M;Nl_1?IhW(TaXv2s1Er9x4hMoh=)K>*wTWQ zNM`oAbSdp1f`t%8hmsJ3Na!H`35qgC1a>J4tna&N`$o_3JiMRxednDQp1BoUi26xk z1WqbyXhbq=iAW%~eo}Bb8LT`zLFMAni5(g{(q6BXi}u718aw=i%HP(+htm7|`MTzN zjaTx$J$>D!&;3g^^mZc%A?u9Tam3)l&ftD0^cwS2hn^(1Sx*kpPX+76+=%kZzWHh<1m+f-B zR%FI=p;MK4$8|cqtaqHB>K*Z%>*2}%SNW4Z&ex3wZP({pZReLublmR3SjO24H6yS+bZ=LdczY^i`)-^hWy zc(5S60s(9JR%<-CE&LM#mZ7}((j1wNym|un2NKs?#U1^*&er2iCyqtFw@jtMq!6E< zSY<8bE-MwJY}{!sCT<)8f^RR7k3nihN47gY{HXF!4jG;8gosN1{@tR>it>l`NsV!tRJ7Yt&~5 z%`w)hKNEE09!hWre}aG?U&=U#&~=;#(HA)1MmsqVqXV2Dq3>}{phq_xgb!GFxlw=x z^jprWXmbpQwIGm*e|wJW??k6_{c`j-uJ1rEbM~V1;_K@L352lF$SrUaZT&Zaz%W|i z`~ZEDn?HdDuKyY>{j~}2=InnSL>H|0*%yP?e#GUk>1^|O;Z#qz*V*TB`&`aWmme^@ zdV0?BWp}p^>biZ^z3uHT4|KSEr`;WH-(yGGEMY~Wg-FaU%EZrHVj;Q3Zit13XL#2v zEGC-S8_{HVhqAKIqHI{y0aP&6XlA)a6DeZF#=_0bcq45%!-yx^&f1JQhCmv?M|RmL M8;*(q=Tqza2CqKB&;S4c diff --git a/stage3/xv6.img b/stage3/xv6.img index 1c56e61..0bac2e5 100644 --- a/stage3/xv6.img +++ b/stage3/xv6.img @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9bedb7e2f1ba67990f6d1aaa49deb02e479cfdd6baa4669f2c23bca5b1034d0d +oid sha256:fe4446bd0f46403e99e4a31f095ded3533cef123aa3b6a8c936afc6ff2f7ac28 size 5120000 diff --git a/stage4/bootasm2.S b/stage4/bootasm2.S index ebd077c..754655a 100644 --- a/stage4/bootasm2.S +++ b/stage4/bootasm2.S @@ -38,53 +38,7 @@ cons_writeline: call cons_write_crlf ret -# Added Write Hex and Int functions to help with debugging -HexChars: .ascii "0123456789ABCDEF" - -cons_write_hex: - movw $4, %cx - movb $0x0E, %ah - -hexloop: - rol $4, %bx - movw %bx, %si - and $0x000F, %si - movb HexChars(%si), %al - int $0x10 - loop hexloop - ret - -cons_write_int: - movw $IntBuffer + 4, %si - movw %bx, %ax - - cmpw $0, %ax - jge getdigit - - xor %ax, %ax # Added to handle signed numbers, it adds the minus and then neg's the number - movb $0x0E, %ah - movb $0x2D, %al - int $0x10 - - movw %bx, %ax - negw %ax - -getdigit: - xor %dx, %dx - movw $10, %cx - idiv %cx - addb $48, %dl - movb %dl, (%si) - dec %si - cmp $0, %ax - jne getdigit - inc %si - call cons_write - ret - -IntBuffer: .string " " - -# Draw Line function DrawLine(x0 (4), y0 (6), x1 (8), y1 (10), color (12)) +# Draw Line function DrawLine(int x0 (4), int y0 (6), int x1 (8), int y1 (10), short color (12)) # Define parameter address positions in stack #define color 12 #define y1 10 @@ -190,7 +144,7 @@ cons_line_loop_end: # we also tell it to free the 10 bytes in the stack for the paramters # 5 x Word (2 bytes) -# Function PlotPixel(pixelx (4), pixely (6), pixelColor (8)) +# Function PlotPixel(int pixelx (4), int pixely (6), short pixelColor (8)) #define pixelcolor 8 #define pixely 6 #define pixelx 4 @@ -230,9 +184,6 @@ cons_plot_pixel: mul %dx # does the (y * 320) part of our math add %cx, %ax # Add the value of x to register ax movw %ax, %si # Move the value of ax into the si counter - - movw $0xA000, %bx # Set the start of the video memory location - movw %bx, %es # Move that address into the "extra segment" es register movw pixelcolor(%bp), %bx # Load the color into a register movb %bl, %es:(%si) # Load the lower half of the color (since they should only be from 0 to 255) # and place it at the given byte in the segment @@ -249,7 +200,7 @@ cons_plot_pixel_end: popw %bp ret $6 # Finish the loop and return to the call address -# Draw Line function DrawFilledRect(rectx (4), recty (6), rectWidth (8), rectHeight (10), rectColor (12)) +# Draw Line function DrawFilledRect(int rectx (4), int recty (6), int rectWidth (8), int rectHeight (10), int rectColor (12)) # Define parameter address positions in stack #define rectcolor 12 #define rectheight 10 @@ -260,8 +211,7 @@ cons_plot_pixel_end: cons_draw_filled_rect: pushw %bp movw %sp, %bp - #subw $4, %sp # Make room for our local variables in the stack - + # Store existing register values to the stack so we can restore later pushw %ax pushw %bx @@ -336,10 +286,7 @@ cons_filled_rect_check_empty: cmpw $0, rectheight(%bp) jle cons_filled_rect_loop_end -cons_filled_rect_setup: - movw $0xA000, %bx # Set the start of the video memory location - movw %bx, %es # Move that address into the "extra segment" es register - +cons_filled_rect_setup: movw recty(%bp), %dx movw (screen_width), %ax # Set ax to 320 so that we can multiply this by y mul %dx # does the (y * 320) part of our math @@ -537,6 +484,9 @@ real_start: movw $boot_message, %si # Display our boot message call cons_writeline + movw $0xA000, %bx # Set the start of the video memory location + movw %bx, %es # Move that address into the "extra segment" es register + draw_start: # Set the Video mode to VGA 320 x 200 x 256 movb $0, %ah @@ -685,7 +635,7 @@ endless_loop: # Loop forever more boot_message: .string "Boot Loader Stage 2 loaded" -screen_width: +screen_width: # Global variables for the screen width and height .word 320 screen_height: .word 200 \ No newline at end of file diff --git a/stage4/bootasm2.o b/stage4/bootasm2.o index 3410ea91d011841cf94d64881a216bccd4effe16..089f29fa420c1d5930308776d1d9b674e9a49df0 100644 GIT binary patch delta 1393 zcmYk6acC1)9LIlmFG;&|NiVUsI+<=_D zn=&5+oJm;Bm(FGqMke-h`mfCT%KX2lG9k>;sV6soQz#~kV&ZWzF>Mc){G(#xnLSYU z({_K!KPV<1+VQfVvbU7{KQdoe_EYvsVY2s(EVFx_U!os|vZ9y8t#pCwd=BsCy>_y| ztGJ)P&%5nUJsY?Cr0qqz6+?c@JFv@vkv!M?#t6k-D4hZEc;7JbeW2rc{t`F(mTKJK zhJ82>e}x=GXMd6BK`_EuPHOkdc`?!n?d@WtFRK5oiG;6z>s-~~w6+E| zV@1Ov(d};+X@82n)45m#1HbB%72;Z;Sxg72^+_f|6oZ1{H-4(mjx6@C-ELE*LFj}+bmmYeW4 za1{KN!soyTJht#eza#k83&8im7Zv^wEH~**7{SxuRJaxV9maU|72wkfZv@Llz4}gY z7MEW{8o!76fm6!&WjiQaN`k*gh2QLmJ`fG8-nwTD;$zBC)P8gb366~CCK<5~hWKBD`YD40>*7ZTAh-bk@F+@dWPd&4by zQ%D>|v`vg6+9&QI+7uFzNV9$Bz*M zru-qpG>~^@y2R-GLu29+e@r8q%t52UB_q1{2O2XI{IN4Jglx-Tq@h0V^~&BSz4!b5 ze4n>>_r7=S+f{Q9OuEb5PB5y@7`KB9obc~f%T&;P*dN$cTerJD*wEPAviFhJwrLU0 zJ7zNC_|?=u^2xC(xa?e9&RjSF;|r-(c=fKp#q*9&cV2dmFRUyCu1rg?a{IMe{~INT zusgierl)fmH!GNW>Jx8B)b3B+hSAE0?`;ybiqsm6mYfZVD~n`q{D*Jh{d9)9$-&}~ z*tnp*Y-uZ+*cKA$2~xSUi6yO;HfdrTvq@LYLQR{LN)|y3X%J5R3X5>hU4E0$h&_A83wR{{zqiidqHrEwY+58v&_q}gMX;<0QFd3MpC z#USxhyLF80p=s-^aIuI!Zu8OOwo+k_NYge|a9ik_P1T;oH>o!NQsGFT561?Mhtcon zcnp1l<23qij!&Z><@iJN?{WM!`p@sM2A2@NzZ1Y!^z$6wKz|P@1OzPT7Ym3tycOBb z_5J9tas9`TS2>O%hr~jl5g5jx9glnw7)RfJO_cF5IVUD zf16uO6HSddz?2SG@I0P>Y^bd6(AB@E#-OyN|!{&>r9Z*OD} zjz;1=v7@p07f(xF7Oe%ZQ-XW&sHxl0Gp;o?Y$|)$EdRjNjH&acE}3e_?O^jfc&ALg zY#sFgJ4_9j+Q^hZ5Q><=zwKhCy8-{XjRur44FVV&fm&&@jcG0Ia$I3Q*oS1V^%n=g zbF@>gB5`_FE~AsO({R%pXza)TVdc;*#ehR}kF)tJ@)u{ggX2oKM diff --git a/stage4/bootblock2 b/stage4/bootblock2 index 8f6d29a494552108912711425c0721f85dba3aee..98e64c672667e57fa72694262bb6d31decb85472 100644 GIT binary patch delta 432 zcmX@W@rYgd!X9Zq=J-mf)1MgXZ4P0jh4!?Nv|Hb?NhbPvok-ay$ zUcUJ!LyeTR*n`RSBF(=TYWNr4oBaI|=DR&p7}9 delta 502 zcmaFFet@I?r7ZInzAhFw8-@~=vjVTb9^S&Yf%mMy2ClOLhhIGT|Kk1s!v=;%#wMm_ z<`$NYPR=f_ZaY~Rw(uQ1%+h(U`5Av#i}HlC0*^i%-d8oD^G5RzhFTuO13)u$&kA(j z_`$38FYyF0cA_yxxMK7e^>zo7(zRrPE=c|WHY5+rTHgAjl8v(-IRLC z=3fjoA`5M%e1F7vqVw2ph6R0xC%*CJwV7ghqrQ;YjiX!6X3AtYMtNO3kcca@8&|g+ zh*>A7c|+5UtGSMYp-#WKj*FpA6Rf#Aj16eo{8_A7-dO=JDqzf%7r7v26i_rCsN~QeFeekt+4?7oDdPkK zP%;xJwH(OHO39eWkW~TX&HR(anZ=c1#+b#G#r2~550Jf&0n7ywFRK4!@dEikK~b>i Ti)@g&K$T#@7qOEMFe?E7hw<$a diff --git a/stage4/bootblock2.o b/stage4/bootblock2.o index 13fe6b556ee82dbad6c2e279fd4564d38756b6f5..0db227ce0317fbcdee57fcb86280f9fb454b059a 100644 GIT binary patch delta 1269 zcmZA0TSyd97zgk(GwZC5=}wqZ;dPV5pv(w0O4En7hq5HPs33*;peG?S+Cpuo+J{;f z#Pvksi`7E}DN^(xnhCL8e6Y)t=*wmjGDV1JPCHgq?rF&Y*rLQvV7&m-V)29n_m5^=#NV zuh&KEIlVGc|1|QW(RxlVWxJ(Ail6CKe_xV^9e&m#)oGp;D$*^qf>!IU6>6g~^a!oc zFRzt#dc9FrBRz{P??WaUObmsnSU*az*np)zh}PBn2)zdNglHU9>I(#_P(|+yp&lV7 zanWytXabBd*-Z5&qc3)vp5&ImfccG@gCML&$6r5WbsuO>#$PoB3e4oFfs&k z6Gatg1~+nk0$<@g3=eT0gFT#Q;C{|aaL2kel8i6y!FoXQ;ehe4<`75;JkPD4fTy_i zbMOkc?u4zr_1`l%ne#JvThy9BJ|ZZL1_D`t4{}b$v+w0x03YXk5h@i_Oo)m`ak$Z)n8sO9F%2V*jv#_DiH)oF Q&2JJ2xfES6?ldy~0a0!@82|tP delta 1544 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 delta 455 zcmbQre~X{_r8Ub$=4hvY;J~1;@O|?pblzzG!BER%cwh_P2Hmp)oj1PUFub&ri{bmv zhC>D&B7Q*G(synzivP#QMMXwObiRo_tN;QG6QkFN^G&apZ~nYC z|3bd$ljRtLdHJSW-l)%EcH`)l1B%o!$~y{xL>!pixVq&)%sN5M8=7uh&2=0Mbz04J zTnu$8-C=A%?cX0UyRmd0?k?l%cH`;1-|ffo=kuy=KECOj?=faFvMl}cqG7T(^OpM0 z(_UQuy@g?e@L2)F16f=dLepP({?GcA#Q8383WZ)d&72mlgk#8LnN diff --git a/stage5/bootblock2.o b/stage5/bootblock2.o index 8a1e1b92ecc0b4b81a9aee2cd7557c527c2867ba..c13dd8b64ff6a989f0975336b1e447281181f3db 100644 GIT binary patch delta 1628 zcmZA2Z)g)|90%~<-8E^N)|uEpxe97&v|T%fwN9B>aiS~hi-Dr3D7J65dOirEj8(+u zy5)t_A{ZZY^ACu+?S)XgVhZA`R;1Ms%A9X3u48IJ+tN)@bW8tS{XVHSKX%-c{6633 z&n0)4OKDWu6X*#-aZAr?pi=q>B zbpGX}BX4M1=OvvrgZ6%--q*euNl0JvVM-;R8TJ15#j1=1s|Ks;{n3bzBGu7|pCU`! zw|mv}Mm?k_okWYiPxFsWjr2`L`}HTUWRFoSXN+@pr!!(sbyHX2Kww3$@LL1UNW+Yn z5TvRHt{|bSYCu&!Ro!+)jxbbp(-nEbqpDwB;hmlFi^|d}yP(ERt171E{->&As&ZA; zig6YNM!bKzGpkdMT;!=}?-g*s6Sa~(X)yd6Hq{0)48`8@m+b06HpJOn40(>8+NSWs*bJ!h_f zCz;p5ADqsfk!|qr%zNQs=2m!=`852R*}jCpWkEMwA+rbQhXc$H;YG|Z;acWNcrCL( zhiDVC32({Trez5BWCL0bH#4t?4>NCrTbcL6-!a?pN#+>rFkglLp0lk{4}vRmfkuD8 zoy@P{B=dX^(S7ER;7)c^ehTND$)3TDZ~^m9c;Nkb8xPNB1P9{T2?ycZ%x&;vW(jw^ zUjXwj!SNqw=Lg`9|M@U3$ywGPR72nW>SSH;c;Z>`jz@Nd)FY!W6xLtl%CS&|7LY-+ zQd=e0n3bLeAJHfBYcs61%Hw9GeluTQH!D6K&nN1|>B+-_U!b9+0GcumI=6KoOh`{@ Q*la2xIyjfl{>61?X#3)&Kwi delta 1768 zcmYk+e{54#6bJD0`is(a^|6(`%^_}U9Gi%3r%1*anUGYcfov`~8F7n-LH9JMqZLxV`zk1?hQxuRWi0 z?mfBh_2%^l$EuE(So*bCSy}${Dk6E|Bn8(@jV;!^Z%0E@;|nh~e|!3PG}SjxJ?`LG z!gFEMgc?oFrGk@}Tr{`PJ09rw?nbri?@;>iN?U8o-hD4cZ@!!?kq5=jf3A7r#>0IJ zbnL;J0yS=U`xfcg17|&P(Wx|5d*an8<8^DuIj~-a@7gO~=2Aemdas#7Cfa_+p0K9rFuqaKV4lbUw?VXi!dMW<|!KB30LLnM>i%y5F_ zi8zp{hbJ@enR-ijF%uTvowwP3@@cfoGxc2Et2fBj4pVpQMd9}|cd)Rm=isg|2bG)4 zx=Y_5{yu}N%UJ0)y$XfV9LF_9+*;*TriI;Eg70#tPuU}$bA~H?rNL5pl+^}m1Af0h z;1Bw1@hQc*JyR+5ms;0GMlU);R7HF z;VaBj@C@?|e23YDx5V(3ITZ3JWRQa;DzJAqGS|R4%+2sR=EJZjo^99*zrpH*u*&Kq z@H?#jm0}Qmz!Fm!aDw>`Jj|?Gh!V`3;mgdeaK(x2g5HLIWc4BV8uMiXi8M>xfNiXS z3D2{7v6aZn>RaF^nV*I0nA_kc=5Dw^WEW^ek*HvaGw|cg33w~>IJ}ej3j7*#8s5Xa z1i#AcwGkc3+MtJ!=*=eRF*wS+6&_-K1|DH$NA4Ta7kF?m0s z&?x*H^AB*fE^Vlx# zhZ85W3lgyN|Ay!{0+%yigl{vC!_)Wr6{(o;6H7>+!hiO=h^fQtj&ycJ+S@t~MX3Hz zWJlM51MQu3usyQB<6uW*bmN){yZEP|0576k&1VTXMU_@=Z*USlB5vp8i#Ih@=@Rd0 z8|+c!_KGhwpK@LNtZlHYcZ)@>Jh#D3bPG>!HSXnkv8k}wUblv5O6)51+1F}BZ^<_Q E0okN^%m4rY diff --git a/stage5/xv6.img b/stage5/xv6.img index fe67061..808c0d2 100644 --- a/stage5/xv6.img +++ b/stage5/xv6.img @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a108667751cb7525a5bed280f5f36a5b873b513ecf2ddaa3758c560bcd0d3ade +oid sha256:49a1abae6715cb4397f92449ae7548d1e0462ab2b0c00b9bdd4ed4d523502fa2 size 5120000