From f8399ecace7ea411f67e0a1a9c0bc0f4b9087f35 Mon Sep 17 00:00:00 2001 From: kieron <kieron@6dbc8c32-bb84-406f-8558-d1cf31a0ab0c> Date: Wed, 17 May 2017 17:34:38 +0000 Subject: [PATCH] More ISR Hooks. git-svn-id: https://spexeah.com:8443/svn/Asuro@77 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5074944 -> 5074944 bytes bin/kernel.bin | Bin 20708 -> 20708 bytes iso/boot/asuro.bin | Bin 20708 -> 20708 bytes lib/isr.ppu | Bin 1815 -> 1815 bytes lib/libpkernel.a | Bin 26510 -> 26510 bytes src/drivers/isr40.pas | 47 +++++++++++++++++++++++++++++++++++------- 6 files changed, 39 insertions(+), 8 deletions(-) diff --git a/Asuro.iso b/Asuro.iso index 0fb402d4414d7228233b690e9c89cba7b84f2c1a..dab0fa68643fcdd1d9c2a25c8103162e056745dd 100644 GIT binary patch delta 9643 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 delta 9540 zcma)C3sjV48s-PV0Y@Az0&)=$5C{>Fo2Uqgzz~oqm|v?Nb6ZSPG&jxK%CyUumD^#P z?8i$T?QDget-NfB>zX0pB`=_8Vt|T@j3^*p00o`>|L+|Q&ODyh!+bLH%=5g@d-?v$ zFsm;7V7*FtY#aNwYgANRWTe%Y$f)?p*r@oZ_-N&Yo!M`HH`Ll!XXq^+uk+PeEw^=Y zdi0+mW4*tMy|6yT0^7M~{Y*y{^eBn901b0WR;XBQ$s?jqv{~B_x;03}a<^Ir+_`b< zYj%$p-Ii+^Y2P+?5ow#Hnjv8OdKLR=d!i+8(2f8Vi`)UQH+BRJQHo$~WhE&;1Ex*M z$uszujJ6Qj*}5at_OW(N-wS7(ilbfoRrO&V_LY+J(o{>~u-(@lUxz;w{+Wb-PO}g; zgqMY@hG&&MYRvE5{<cgs=2V%bAw%%~V3n7<AMm#97raCJlPu%8my0q_C<na1mkZv% z%Yje(icmFPOa<V*TOoM=ssKJs6~bpoCGfJMQh3=^3F38BhN<y}9{|`(2ZWc;4*<>9 z147gJAmBZJFjU=3%0G3Cw39OPb5e2*DHSo6WokMYrH1!71Y`;iiI#0bSjQn@&HFGY zQ{iDzrcVw7+m{Xt+nQeh@0ni&ZxzB$5Z3(*(9Ad@G#4EKntP7~sXNMC3WwB5*?G7S zu}4MlSw}%{zdtH^TZ^!;V*<-R26$f+R(%W@^FJ=)>5qfLe|B6nr5a&DRif~@Re<+p z)l$*SYEY!-t3{F4Rs)~st3?i)6F_tJ2{E4^oB%o0oe()#p9GrIPYTVICjqbOq~LWT zETcwXi)(;pS&h(aL0IA`fz3Mwa@cc9<X}7nG{>I~?mHlpQ}WaBfc$V;7^^=G0z~~P znlkHGfNdwN{#Q_l@H0X){|w-5JyR%}SqrejS`n|f7HD3r6`H!UfLCx<@QTg?UgKH8 z)BFaCH1ju6+;<RmMqnS;0a{+2puJuP!X2v%a{PT`+NWiw8#W(~wmd+k){D8FUk}pR zTQAZv)&u>729eIQ4FKCtSZxE)3_m9{**U=5dQNCop98rDoEN!fp9gzy<N4P_D=z@e z1s8;75yBb?(=>v3GaIQTjUZl4qo`Ro;$>YFyk!?b?uRc%s6Ou@Y|15ZGFW*D@M;LN zz6`J#mj#a_tnRYdmzpNPo82V(um)ibglVoI-WB2@tbs61GvYN94`B_>38H^Sz$-M; zNfKclg!x?syyaI#?q49R>#FcFq6P3)v<U1AgmtwDFC(u3-fPzc?<<7$ToYbGt^?j1 z*9G<s!c2sXY6ZO2t-{MTgxR)<Ig4upv-@tFnB8yMz+UNT6MJPuJJ=7)+qZ}w-2m9a z8)D`^L0B_kx{kD=k1j|b-i$nz<0Z+fH#)c&-stdB)i-p2Oxrs|ro(T7$V+dE$Qy2g zY_8qxdjxdQr(_$FD`G8=fY03$S$}W~=r`OF`gXSg_RQ^IRm^<pGf1D7ojnB~V{2}U z2={ISmsxiN_SZWgLggJ1z3mR@V`8W1<DWYL?}tvoJJ$)S8Qmr3?b$BiWqVhF=y5mD zT-e?3Jf1ma+6;UiZ|W8aY3~A&Id_GzHFrTmXYPuGdhY^bIroI-vU?z*!}ml&oe0b7 z5u5Vm9uTjxN5pIC0h&p@g7-o%!1ndVszvJT1wJ$G3!jVcgWSvRi`-ifmiRzm^B#bB zdme-i{(a0ekG;M&iFE#C0-?V(El@14^N=hpuUjCgme&<Ymb`VBB-NIzl>kwmElK?@ z{j;ZM;Y)w{wDL|>r&p3J`ygjoOR97EMQdO|F1IER*R3VX+Q=z3lG-SFkqvUV*M{O= zwn5y40mS{w0EF%~qn9C?U@NIZC(pA*+	We8m=Jlwc?IJ8tBp<tSSTU7N`}?I?lY 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 diff --git a/bin/kernel.bin b/bin/kernel.bin index 1b2d3bbe836f7cd04edabeabc3cb77ade69f8b6d..299b8c5147396129a56015c1ac2c237c4e3e32ff 100755 GIT binary patch delta 537 zcmaE|knzbv#tp_YOqQaXO=awat#>m3fp>2igL5~_+@2l*hSmcmd^?1Ig54ru{{KtO zzxit(Zc<3wv4G*lt-t^OgO~~oFV0V%pf9Vv4WvJ`^XU$d-klCW&L)NzHvj(r&*%fP zcO}RRFr@9|VA!DX;`!t-gR02|nxf`^{{M$q+xZP->lv7>d_WyQTS0uNtvgiA1sGni zzyJUL#iKuyC+dq#K42&yZUb}##P|XQsPTL+o`0GA+_18KhY3iB+dH6+#s@$Gr1pjT zcOWt8IgqgZ0VFye1BvFRKtk^)kf?kHBuZWaiToEp!s{WBSPFE?3xQui7WaQ35%va1 z1U>;0I`@Hu`y(K+={1m;dk;vw0NSy`17z<x#<!CL3{@;DfI5-A$kPiASRRNML424O zQ$QNa-vZ4E`VIEt1#MPKpgb%v*ZhY0mO%;XTb>u;pa1_qdAPSkjbXwrppgt-o!^|g zd8YF8PUh1Q2itbCl(UlsBw(l`0}`-2Sju}GB(T}jNSt?*g9`g*6Zf+m6Bh_fW(;@? E0J@t8NdN!< delta 433 zcmaE|knzbv#tp_YOfy9`o66V;%kEGy7hrhd{NexqO$uo{7BIZ{@fX5WV0iI%@;ZH4 z=@K=D(9WkBeGCi?yAtFD7}9ofFl^9xA@S}1|H(51WUN;F`Tu`6P?EvB^P6)w%iNwG z0fyECC44*hfMVSuVE+G0&A<6;9_}y!S+@NB|Nk$VfYwajrzx%oRK3#ysB#m-i#tFu zh&>lz_VB%EpZra~s(yzHNawS6K%I&YfdokDi|5~ggwYEiarXz1(0BqQl%D~Kb3cKE z<Z~b)@(M`szXTGmK-!i9Eqbxx7m&sMA4q(A10+6zw4J#RB%VJ45<ws_TM#$n-~azR zB0%=$F}|Dp!BE9Q;y0>S&%nIO1Mw<|5A$jXNTWE&!JmFl-eaI5?gI=bXecT|Ly_mj m_s^5R8&obb=AA5HykL`q3Oj2?YEHiKW=Z!O9FrLX9s>Y)^6Vu5 diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index 1b2d3bbe836f7cd04edabeabc3cb77ade69f8b6d..299b8c5147396129a56015c1ac2c237c4e3e32ff 100755 GIT binary patch delta 537 zcmaE|knzbv#tp_YOqQaXO=awat#>m3fp>2igL5~_+@2l*hSmcmd^?1Ig54ru{{KtO zzxit(Zc<3wv4G*lt-t^OgO~~oFV0V%pf9Vv4WvJ`^XU$d-klCW&L)NzHvj(r&*%fP zcO}RRFr@9|VA!DX;`!t-gR02|nxf`^{{M$q+xZP->lv7>d_WyQTS0uNtvgiA1sGni zzyJUL#iKuyC+dq#K42&yZUb}##P|XQsPTL+o`0GA+_18KhY3iB+dH6+#s@$Gr1pjT zcOWt8IgqgZ0VFye1BvFRKtk^)kf?kHBuZWaiToEp!s{WBSPFE?3xQui7WaQ35%va1 z1U>;0I`@Hu`y(K+={1m;dk;vw0NSy`17z<x#<!CL3{@;DfI5-A$kPiASRRNML424O zQ$QNa-vZ4E`VIEt1#MPKpgb%v*ZhY0mO%;XTb>u;pa1_qdAPSkjbXwrppgt-o!^|g zd8YF8PUh1Q2itbCl(UlsBw(l`0}`-2Sju}GB(T}jNSt?*g9`g*6Zf+m6Bh_fW(;@? E0J@t8NdN!< delta 433 zcmaE|knzbv#tp_YOfy9`o66V;%kEGy7hrhd{NexqO$uo{7BIZ{@fX5WV0iI%@;ZH4 z=@K=D(9WkBeGCi?yAtFD7}9ofFl^9xA@S}1|H(51WUN;F`Tu`6P?EvB^P6)w%iNwG z0fyECC44*hfMVSuVE+G0&A<6;9_}y!S+@NB|Nk$VfYwajrzx%oRK3#ysB#m-i#tFu zh&>lz_VB%EpZra~s(yzHNawS6K%I&YfdokDi|5~ggwYEiarXz1(0BqQl%D~Kb3cKE z<Z~b)@(M`szXTGmK-!i9Eqbxx7m&sMA4q(A10+6zw4J#RB%VJ45<ws_TM#$n-~azR zB0%=$F}|Dp!BE9Q;y0>S&%nIO1Mw<|5A$jXNTWE&!JmFl-eaI5?gI=bXecT|Ly_mj m_s^5R8&obb=AA5HykL`q3Oj2?YEHiKW=Z!O9FrLX9s>Y)^6Vu5 diff --git a/lib/isr.ppu b/lib/isr.ppu index b7262b9f1090e491d1488a114dba6a60df904493..9cb27c527902fa347f21f0e7bc3edfed3c97ac08 100644 GIT binary patch delta 21 dcmbQvH=S?8M@Ei)0+v?(=Z~3f{>doE3IJQN2p|9e delta 21 dcmbQvH=S?8M@EiUQioWy&VS?E{F70R6#!vB2#f## diff --git a/lib/libpkernel.a b/lib/libpkernel.a index b5c358edf83c724c0d4ea49dc05a75f39d0ca04d..6cdc6323aef4620dc801ce4159ffa839242ff96d 100644 GIT binary patch delta 453 zcmeA>&)9dKae^F+nSqhTMx`B$V8-MG9<j||7{4)td7B@2o?x21je`#%caNhEDwn_` z!G#c?B=&^~p-0GEFJE5)2n<auO$|&yR)9^el6ePF1>#LUrQx&roctz)$mUr}d=S&Y z@>McEoB7lhA<3W8_=n(42FdH`Aj`kfLpR^f2-$otQ)GE7N1x4c7RdUgtdY$J$=BH- z%Ud}@^#eoZB$J>a#Fq$9f`uoa_vD2I#WjR;H(&5EVnYO&OmGm~tKyqG!*V%bdVmH) TgAd){xhW8X!C`qM<rEVD;N6Br delta 453 zcmeA>&)9dKae^F+sfD@OMx`B$V8-MG9<j||7{4)td7B@2o?x21je`#%caNhEDwn_` z!G#c?B=&^~p-0GEFJE5)2n<auO$|&yR)9^el6ePF1>#LUrQx&roctz)$mUr}d=S&Y z@>McEoB7lhA<3W8_=n(42FdH`Aj`kfLpR^f2-$otQ)GE7N1x4c7RdUgtdY$J$=BH- z%Ud}@^#eoZB$J>a#Fq$9f`uoa_vD2I#WjR;H(&5EVnYO&OmGm~tKyqG!*V%bdVmH) TgAd){xhW8X!C`qM<rEVD=zND~ diff --git a/src/drivers/isr40.pas b/src/drivers/isr40.pas index 89bc63fb..3b866649 100644 --- a/src/drivers/isr40.pas +++ b/src/drivers/isr40.pas @@ -4,7 +4,7 @@ * Description: 1024/s Timer interrupt ************************************************ * Author: Aaron Hance - * Contributors: + * Contributors: K Morris ************************************************ } unit isr40; @@ -17,27 +17,58 @@ uses isr_types, IDT; -//var - //procedure_ptr : pp_void = nil; - procedure register(); +procedure hook(hook_method : uint32); +procedure unhook(hook_method : uint32); implementation +var + Hooks : Array[1..MAX_HOOKS] of pp_hook_method; + procedure Main; interrupt; //IRQ0, called 1024 times a second. +var + i : integer; + begin - console.writestringln('helo3'); - //if(procedure_ptr <> nil) then begin - // procedure_ptr(); - //end; + for i:=0 to MAX_HOOKS-1 do begin + if uint32(Hooks[i]) <> 0 then Hooks[i](void(18)); + end; outb($A0, $20); outb($20, $20); end; procedure register(); begin + memset(uint32(@Hooks[0]), 0, sizeof(pp_hook_method)*MAX_HOOKS); IDT.set_gate(40, uint32(@Main), $08, ISR_RING_0); end; +procedure hook(hook_method : uint32); +var + i : uint32; + +begin + for i:=0 to MAX_HOOKS-1 do begin + if uint32(Hooks[i]) = hook_method then exit; + end; + for i:=0 to MAX_HOOKS-1 do begin + if uint32(Hooks[i]) = 0 then begin + Hooks[i]:= pp_hook_method(hook_method); + exit; + end; + end; +end; + +procedure unhook(hook_method : uint32); +var + i : uint32; +begin + for i:=0 to MAX_HOOKS-1 do begin + If uint32(Hooks[i]) = hook_method then Hooks[i]:= nil; + exit; + end; +end; + end. \ No newline at end of file