From 2ee011ea3c43f8ad93c5fb55bc21eee4d017462b Mon Sep 17 00:00:00 2001 From: kieron Date: Tue, 17 Apr 2018 00:18:56 +0000 Subject: [PATCH] git-svn-id: https://spexeah.com:8443/svn/Asuro@532 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5210112 -> 5210112 bytes bin/kernel.bin | Bin 155876 -> 155876 bytes iso/boot/asuro.bin | Bin 155876 -> 155876 bytes lib/kernel.ppu | Bin 6051 -> 6051 bytes lib/libpconsole.a | Bin 111472 -> 111472 bytes lib/libpmultiboot.a | Bin 29980 -> 29980 bytes lib/libpsystem.a | Bin 184436 -> 184436 bytes lib/mouse.ppu | Bin 4820 -> 4820 bytes src/driver/hid/PS2_MOUSE_ISR.pas | 189 ------------------------------- src/driver/hid/mouse.pas | 13 +-- src/kernel.pas | 2 +- 11 files changed, 7 insertions(+), 197 deletions(-) delete mode 100644 src/driver/hid/PS2_MOUSE_ISR.pas diff --git a/Asuro.iso b/Asuro.iso index 361858f97966a62d51351397f49def8e44838759..356aa785d69a3eec0d814c2a2c25dbbbe6364200 100644 GIT binary patch delta 24572 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 diff --git a/bin/kernel.bin b/bin/kernel.bin index 7f0632def814212704c39e508b8cb3fabbfa7d64..09925898e1ac9d594e00c933d369016f3b9d2cf6 100755 GIT binary patch delta 15225 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 delta 13 UcmZ3izgT}l026=R#-KoP03tvHe*gdg diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 051cab519678daf2a9d739576983c0c1a12f6f5b..fca8b6bd790c94b6cbeaef38b02ea4fb537d689c 100644 GIT binary patch delta 1411 zcmZ8hYe*DP6y~n4&`k}^nb34F0wZ>HSC>p$5s_YM)Q^xb5LSbbNW_Q~To(LM5W==o zEm$mLB_xKjt)~X} zrg+NSmF{S9r#-Ra1s4mVeKRQ$;+hIHXWLco>?q|p&gF5JA5u5)Qq%|QIlV-tgnV_x z4)2&w0)_l6wB@fR6Wf57fmZI4MlulJcbkxk^nOWJNvBTi%>xU#5$a;}(Xi!uRk zF@lY%ejC{o@QzW68#s?3Sldh~sSXp07aa^g*;EgiC(aol=xcaFL#d91hST@VVLF1$ zv$u$!Vgi#*kEkTz^}(y=Mj8t3ER?m-j1UO95fru!(aqAJkN#p^P-RL^CRNSQ+|Y43~zJXZC`Xn z7qakk{0(JhCQQupDUAuvmJ(6O&%o!G1=L$~u>5wc9$MxCM$_%sf*vxkx@b5I%f~z? z;nZ@};F$k0mpCf^^2WJ_Wj{hb!c`cqw z^|=^ciy|BTB@tP8F$uK-+I(P&Gya(4-CO3k=&vcp2N0qFmJL(L#Z+_bP1DE(a4cO1 zxB}FQ&+N1S&Dj>0PfJ#Pz_RiKPSGZbK%`0?_8gU71S4TL8u(I?t2g8K9!z>aFvpicq5Q;Y0| yaOx<^b&_67Q5MUu?uE9Q#jmfSG`F68-j;pX()z?mgnLCqKUjGd@Q{cWZ2tj&vAHS$ delta 1411 zcmZ8hYe-Z<6lT^}=%$9|y`kyF2#na(RhLv+5s_YM)Q^xb5LSbbNW_Q~To(LM5W=>% zTCiBIm5>;^+erpdQ7Hm-DM{=}35iB*$PE$#rMi!q`}#NM`@Z?k%sFR9+(;HTk^}pb z$}8O^u4rMWU0v~li-m}ND?tr$O*xvk?J0A16muNsa+j7JQ8w^m)C(I~y+kI5e0A6k z@0d;k1$`{E<*p?XTfc{aR_?M!G7vv-hmf-LK~YAMDusw6PGlgsGN^%ku9$n9GJa1X zg3YRa8`g;&juG!)udC~2V?!5=I|kl!{$H;aQ_{_B+`KL2edq+X()Ahf?H z2GUZxS-4|d+aZd*&cxICOl(+aLmXdDe|`=YD5 zkcFS)ZzwZ6VPdAHH6}1uOhiE+1D{{!QSXR@<#%HB&@%5gn(o9F^^k$JCBtD@KIT3J zr&po|$J~$E#8LLI|8jy%ATO*-Z{S;;lpBQgfBI6Ih0z~dNG%~Bm}6ij{+rO`wYV#k z=VEv*vTXR5NMxa<1k?&>>!B%5`(uvxZkywRzor-;LWlxbGE5>DQ_Qg^MI%+y^WMGB(@zQ^T$EwgxgeNM{C)zH8di5c|j%w7PPXWGLi|mGQ x`WVV~l3t5Z7E7=0g|?Z+udkz&Qa$^EEwj?ndUYg1y%9t|SZNmUPy{X7{sV`&x!?c* diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 14c0e539e201872045154574d16d23f8ad55c1ce..b305172714d24ab3edcf09b279b7a5479f2ab445 100644 GIT binary patch delta 519 zcmbR9igC^>#tE{lrUph9MjMrUSs|>+3Pxg^yI6lSBXJjS9%O=Z#W&aTyg}x+^8Y|^ z#WpYC+|D%FUz7`~LBLvKbD8LGbQSy-dinYahNecw=3obatp#h9mxF0lFap}8sKvNB zU;Yy#vi*uO2-k^k-m0R7;EHYjrG6B_mDqeoTM(72$vAnfIsarC7NN~*y89UUOo0wT zxMQ<|kvc-X*ybeDmC%6MEMN^Y3CJ{rm{P^WwYk9lILvhceiEBQ9ND1;Y))|54l@fB z41V5{jFa=_1vbZeUV-U=i2sEK&*lI>Wta|7JoE*gMCKNSKIDgnLxPL==KRzom@J6< cHlqi|1?dF`rguIfFvT_(#tE{lCYGiKh8vZ9Ss|>+3Pxg^yI6lSBXJjS9%O=Z#W&aTyg}x+^8Y|^ z#WpYC+|D%FUz7`~LBLvKbD8LGbQSy-dinYahNecw=3obatp#h9mxF0lFap}8sKvNB zU;Yy#vi*uO2-k^k-m0R7;EHYjrG6B_mDqeoTM(72$vAnfIsarC7NN~*y89UUOo0wT zxMQ<|kvc-X*ybeDmC%6MEMN^Y3CJ{rm{P^WwYk9lILvhceiEBQ9ND1;Y))|54l@fB z41V5{jFa=_1vbZeUV-U=i2sEK&*lI>Wta|7JoE*gMCKNSKIDgnLxPL==KRzom@J6< cHlqi|1?dF`rguIfFvT_(e@onR>`l>f zAQl#xC{#{CiC7UG+MlHeM|t&1fhs8qRHzBjXi6#3s;LWaYF1jN?zfswv@60jqCS^d5P03)h2f%P1$%$J_^+>0st-M!i%=bLZ z)xXI*uD8!f<*Rc~SUVaz|0Zv{V=XTmpAN>n=(y9?Ji#QrLrx1+74p`J+Z&p0pL(U{-ga-J?W49{}1 z^zbZm!(mSy0RJctEKp3aytxV%C|0n>{31P8a!%N&f0mrWzj$UZ=#Q49T9Kh)9xJJo z#x>@T<@*+X@966L7G4v!vbB#xPu{SorVC>>wZd3E^iqIlERiHB=^0C!x$lLumYG84 zp_gRjty#tfe9ZELUD&46k?0HozIqk9j}_2YuWBY2_u zz9E;|+Rtx!wI1ud+AZt7+W3uLZ61>v&nu^B6l_+}$SZe6qh*^Jjm(r3erh{Kqhy;i z8ZFzT56N^9yCglZ^Nf+Bmv)?z>1GY_z|Jo%uNbEBwu)|68kzlGyJepTs)A;!hxf>= zC9S*6y2kuMzP4H#L3ZI1FA3w)KwcsC}7z4AGYCB})ta6>i zTaSF|(XQ2bwbTZ$HsF+38}Xf2yT8e)@$~ansgG%ngMRs(bheDS$s7KoxctNYoesKd8@@U(~GGs=-;;O5!S6nq~ zy{tptTs+bl1YY*H%BVYV(>{XI8*)5Xn}~T;A26MbK0i1wRvM7W zfK;EkMn>vSrTSTxA3oO`pNO)$Oekf&`-2r9F>R2;TBJby?ywXW4pe=N3sAU3fJaia%&>28W42@HwsPVCwHvuk6D4AM}Z%%@!6k;!G zbJ@!~AyW^n+k%fwh0E3zVk9u@{Ul7r@-Xz39;SyJ8>T~6lKDU|0b~S>8;LV)raGmu z9%+4nvjT*W0~>x##glU&%Q^(MKMeyNvodf*F}!RExO+ax`%$zhC4@gRN>z$7vY`mW zi$Fe!hQLUuH&POBjle+zQvI(!vtVpnyggAzF+nZA6%d$XfQ;!6+RjYNIV(>RL zi^P6bveUQL0(|`n?6TY<`i%Nb!uk3Ie=?S~Lk;-MuS-W6MgErH5B^kOB-KUk_{UAA zzCp$_*Pzy07}%1enU_EI>ZYmUB-KSN?y0%XOMR0%K1Cy{r{u$aNnO#~rjqKSHuZH= zsc%xNZWL7WOVZ(iSeB%=W!h9yUDSsMxvA7QecP)~GL9Uqk#Eg+#X$}Ym*m;QY%-~m z%&5HpD@Q7{Autlm6K@KN6MJG7y<2im-eq%1b#sT_o4_T(6Hd_dc1oO-@3dET`v7<>=2CtiEb4it4ddCa#LWw3nHAJ6L-~7_3dPY0! zjhwNj^I7*A>Nl7#-RbAFLtU6i52W?dwLNbig;aHq7*A+uh30-jNid&K_GYCv6a&k( zEnY*#e|zkFRlDbY>p!FDPmO7p@k delta 4173 zcmZvfe{2**6vy+HLaDap4zQGz%7LI*;XF{NsHqhZ1OYDrn+gK8v;f^1QAB#BK$QRr6>CB?no?_|N-9R*?C#9&-uC{Q`OeH|=KY%4 zyAr+rO7!~j?Cy7t9UU6^>EN|P%$6PvX7GbUI=Y!%9u3xO`kLF)tkFnkF)N=6U+~J| zzk`}`MpMmtt@oJVlG_9H8##K^9k~YHqzuTlDVc1}0LbBy+_<$=k91nvn!BaOe9yu> z{XqV4y}clnugg1O?P%!yK>kk0T3$XO1B`jm@u#hMf=POZoEE4q=B<-vvys%Nn4Ua-k-ngW;3uCsn!ZTs230u6{d?q!XUqR6*+NPqBU*U>I%MLRdSt%*})J}><*$!tk zT6RbulIbFLNqS)SStCa;?K&mX%^Ko?-Je=sF-+ramEEi~GW+TKWSyVMN%5^et zJ^GPHyH@YjQX9S6fKy&=__to|-ZM^(XI!vK{jTOX=$Fq+rwcPOF8u8|&eDs{<>Ka< z%wPIRYApXNtskFssYJTl=*NFieY%B;^=MloFKU(9FK(b>9&P(ThRo6CjjVG9pQ`H0xt%UiKp+O`PewPF)lOmlZNCWB& zvG<@92VMvAnq)#?B*aSHWdZrncF-k4OivF|e| z!QegczT8*{jD!YJW0-!QS|;GeLx+L;odLAO(0C<^8Xt%G6X8b*B~wfB)yWW*LhLzh z9(#T_Wa*)e@8Cnz;Iegv7zxaJ&4MXd5r)3f!}O42<8;VQG9L&gfQ*1~BXNd3rcPqPryLOtV|qU3eQ^t?ppxzeiUs=3E_{-MJh!Z*-(Pv zB_N+fLtrE{7%7RjMBp&^#u}H8{lp?wmz4~8%R$zXP?P0ZjMRQ(wPjqvD#wDDW$aR}6xUfP(#Up|Y{F}gRVG+VLL5W;>`f{2WmzD#DM%vXGpbc?VW?JyZcdHb zPpB$%)Ly{$9fq%syj*@r&0=B%Y2-bbeMQG4Y~xWi4M}ywT25H7509%^CX7ZDto*cu z9sEX3LsH!^-+2pm_MDn!!e~UnVn0e)+Yf3QlIn)#|7^i}TvD@47>!6+b*puoV(>RL zi^P6bveUQLLVWpm*lW2(^cnTf2okUY%-~m z%&5H(t41iaAutlm6K@TQ6MJG79V59X@3gt3y17H|PT-PYa(mn(xQW*p`W}$ny!&k~ zsc!C@6B4*2nB3(PyNuhKM5<<}afq=q?wI_PKa6q5W*dP_CLm{-kRAXx&knf& delta 39 ucmcbjdPQ}DA5&J##(-K5#w(l8afq=q?wtITKa6qbW*dP_CLm{-kRAXwZVs>j diff --git a/src/driver/hid/PS2_MOUSE_ISR.pas b/src/driver/hid/PS2_MOUSE_ISR.pas deleted file mode 100644 index eb6179a2..00000000 --- a/src/driver/hid/PS2_MOUSE_ISR.pas +++ /dev/null @@ -1,189 +0,0 @@ -{ ************************************************ - * Asuro - * Unit: Drivers/ISR45 - * Description: Mouse ISR (IRQ12) - ************************************************ - * Author: K Morris - * Contributors: - ************************************************ } - -unit PS2_MOUSE_ISR; - -interface - -uses - tracer, - util, - console, - isr_types, - isrmanager, - IDT; - -procedure register(); -procedure hook(hook_method : uint32); -procedure unhook(hook_method : uint32); - -implementation - -var - Hooks : Array[1..MAX_HOOKS] of pp_hook_method; - Cycle : uint32 = 0; - Mouse_Byte : Array[0..2] of uint8; - Packet : uint32; - Registered : Boolean = false; - -procedure mouse_wait(w_type : uint8); -var - timeout : uint32; - -begin - push_trace('isr44.mouse_wait'); - timeout:= 100000; - if (w_type = 0) then begin - while (timeout > 0) do begin - if ((inb($64) AND $01) = $01) then break; - timeout:= timeout-1; - end; - end else begin - while (timeout > 0) do begin - if ((inb($64) AND 2) = 0) then break; - timeout := timeout - 1; - end; - end; - pop_trace; -end; - -procedure mouse_write(value : uint8); -begin - push_trace('isr44.mouse_write'); - mouse_wait(1); - outb($64, $D4); - mouse_wait(1); - outb($60, value); - pop_trace; -end; - -function mouse_read : uint8; -begin - push_trace('isr44.mouse_read'); - mouse_wait(0); - mouse_read:= inb($60); - pop_trace; -end; - -procedure Main(); -var - i : integer; - b : byte; - -begin - {push_trace('isr44.main'); - b:= mouse_read; - push_trace('isr44.main1'); - if Cycle = 0 then begin - push_trace('isr44.main2'); - if (b AND $08) = $08 then begin - push_trace('isr44.main3'); - Mouse_Byte[Cycle]:= b; - push_trace('isr44.main4'); - inc(Cycle); - end; - end else begin - push_trace('isr44.main5'); - Mouse_Byte[Cycle]:= b; - push_trace('isr44.main6'); - inc(Cycle); - end; - push_trace('isr44.main7'); - if Cycle > 2 then begin - Cycle:= 0; - push_trace('isr44.main8'); - // console.writestring('Packet[0]: '); - // console.writeintln(Mouse_Byte[0]); - // console.writestring('Packet[1]: '); - // console.writeintln(Mouse_Byte[1]); - // console.writestring('Packet[2]: '); - // console.writeintln(Mouse_Byte[2]); - push_trace('isr44.main9'); - Packet:= (Mouse_Byte[0] SHL 24) OR (Mouse_Byte[1] SHL 16) OR (Mouse_Byte[2] SHL 8) OR ($FF); - push_trace('isr44.main10'); - for i:=0 to MAX_HOOKS-1 do begin - if uint32(Hooks[i]) <> 0 then Hooks[i](void(Packet)); - end; - push_trace('isr44.main11'); - end; - push_trace('isr44.main12'); - outb($20, $20); - outb($A0, $20); - pop_trace;} -end; - -procedure register(); -var - status : uint8; - bm : PBitMask; - ak : uint8; - -begin - push_trace('isr44.register'); - if not Registered then begin - Registered:= true; - memset(uint32(@Hooks[0]), 0, sizeof(pp_hook_method)*MAX_HOOKS); - mouse_wait(1); - outb($64, $A8); - mouse_wait(1); - outb($64, $20); - mouse_wait(0); - status:= inb($60) OR $02; - mouse_wait(1); - outb($64, $60); - mouse_wait(1); - outb($60, status); - mouse_write($F6); - mouse_read(); - mouse_write($F4); - mouse_read(); - isrmanager.registerISR(44, @Main); - //IDT.set_gate(44, uint32(@Main), $08, ISR_RING_0); - end; - pop_trace; -end; - -procedure hook(hook_method : uint32); -var - i : uint32; - cont : boolean; - -begin - push_trace('isr44.hook'); - cont:= true; - for i:=0 to MAX_HOOKS-1 do begin - if uint32(Hooks[i]) = hook_method then begin - cont:= false; - break; - end; - end; - if cont then begin - for i:=0 to MAX_HOOKS-1 do begin - if uint32(Hooks[i]) = 0 then begin - Hooks[i]:= pp_hook_method(hook_method); - break; - end; - end; - end; - pop_trace; -end; - -procedure unhook(hook_method : uint32); -var - i : uint32; -begin - push_trace('isr44.unhook'); - for i:=0 to MAX_HOOKS-1 do begin - If uint32(Hooks[i]) = hook_method then Hooks[i]:= nil; - break; - end; - pop_trace; -end; - -end. \ No newline at end of file diff --git a/src/driver/hid/mouse.pas b/src/driver/hid/mouse.pas index bce8a510..5f6fae7a 100644 --- a/src/driver/hid/mouse.pas +++ b/src/driver/hid/mouse.pas @@ -152,22 +152,23 @@ begin if Packet.y_sign then y32:= y32 OR $FFFFFF00; if x32 <> 0 then begin if x32 > 0 then begin - inc(Current.x); + inc(Current.x, (Packet.x_movement div 4)); end else begin - Dec(Current.x); + Dec(Current.x, (Packet.x_movement div 4)); end; end; if y32 <> 0 then begin - if y32 > 0 then begin - inc(Current.y); + if y32 < 0 then begin + inc(Current.y, (Packet.y_movement div 4)); end else begin - dec(Current.y) + dec(Current.y, (Packet.y_movement div 4)) end; end; if Current.x < 0 then Current.x:= 0; if Current.y < 0 then Current.y:= 0; if Current.x > 1279 then Current.x:= 1279; if Current.y > 1023 then Current.y:= 1023; + DrawCursor; end; {console.writestring('Packet[0]: '); console.writeintln(Mouse_Byte[0]); @@ -176,8 +177,6 @@ begin console.writestring('Packet[2]: '); console.writeintln(Mouse_Byte[2]);} Cycle:= 0; - - DrawCursor; end; pop_trace; end; diff --git a/src/kernel.pas b/src/kernel.pas index 816688eb..9de3d301 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -246,7 +246,7 @@ begin tracer.push_trace('kmain.DEVDRV'); console.outputln('KERNEL', 'DEVICE DRIVERS: INIT BEGIN.'); keyboard.init(keyboard_layout); - mouse.init(); + //mouse.init(); testdriver.init(); E1000.init(); IDE.init();