From ddbc549cb0ce55f5b454aa68e23c23b10814b6ee Mon Sep 17 00:00:00 2001 From: xamidev Date: Tue, 16 Jul 2024 22:13:56 +0200 Subject: [PATCH] Add: very very basic keyboard driver with shady keymap --- iso/boot/kernel.elf | Bin 20864 -> 21136 bytes kb.c | 63 ++++++++++++++++++++++++++++++++++++++++++++ kernel.elf | Bin 20864 -> 21136 bytes kmain.c | 8 +++--- makefile | 2 +- os.iso | Bin 497664 -> 0 bytes system.h | 1 + 7 files changed, 70 insertions(+), 4 deletions(-) create mode 100644 kb.c delete mode 100644 os.iso diff --git a/iso/boot/kernel.elf b/iso/boot/kernel.elf index a95472e29547a9a22f8c7e4e73efe496359b8372..3b8ed7bc0ebd0dc87af384cb5660faf53b807dc2 100755 GIT binary patch delta 4238 zcmb7{3s6+o8OP6E*axz>m!~KQ%Nr3yK{O0%F^2kv#Ymz?3@8|0z7Tv=C+oVXY*!{r zkH#c3G{jfaG%=xDNyl16H<3uD2CD5$;#fyB>JqS{R>eki`#<;Ig<~d@N$<=zdw<{e zo$qm87j_&H97hC)Q6-w1V`J4dT0&}?=SHY+k0IoCb7h2Tn$WhpJy3YhIX&p2AoMr` zL#_(K1Lxh)Bq6LPju2lWKSumaR1@-UG+hxoCYIr1;JIi*((q1Zj@0c^Js+Tc!Rk}~ zxl8Zs+t&7`?l(r=s2*gpxb|UyJAVWr)_z@;Pm}d9jW&jlIs4G#F}bh%L;acPjuVRj#&|F)E6;Dh@#jRJ5FO{imTKWdrO->isidU+u|b3-h6TvYlmQy()DF` zO6gcBeQAbMdH3y<6=dtNQ#Qm@xX7LNgcYGz>S80A#Ub+vHV@g|wWEI!csQ(NFp?8! zo;i-F65PwAwtV@HX?6TqZ6W5};tKi6f)@`*?wj-D1-~|^6fAY3OsJ<`j|tu7HA!>) z6TPfpYv7%w;goX8d@rTa>^#$pclDM%es=Y+rtacUEKg(v-II`^iD&QM($fi3wcm!Y z&X3Y32{VMnbXwwVp~9Jxlp^SM1u?^%aOd*m7X(%R06jSFE$tx@16PL8nJKBd8oXOv z>0z`!rC+<<07FhFtr(xAn}>IcDkHGc|4c6KUTU zd!$19a;*LOCadNVJ0x=zU6P~=lyq5&E?ClyrY)&PA(oy>9j(zIsQPnyB{jlaiCb#8ViOhV8uxbBc{Sl)&1Oj>JFK?t?OrdlG{$<(AP?IlDRqYSeckNU)?;WddStzR z$FIv9X2@gVAkx&s$#FhWIkCR(r2(wbNL&f4JFSf{jv`G~mdR%Qbu?{Bds)+~N7e7s z@6%$;tnmd)C4VkXF{YViIsDco}4gMdlOfb#r1pV_Y;DBbeG^~ zIs3*)8k%ubFw&D5lZ6s`HzR8H1zgqYCbWqOvoF-!_BuKc+EL7=z}?1->t$nSgJeO? zid8Dn4iAefKY+fJd0clv!=PF344%AS2%m&|+v2*9%b4ARxf88!qrJh}kwiPPUX1)Z zu1U)o8#7u+vV2aY7yH|UrcX%~66x|OkzzUA)ba9t-sGr$KpUq-nzNbmkspROvY{wk z=&}_JI_wUHIYooD4;+r+TUWzUxz58MTdu0a9seI`r#9vd7~1m&8alQ_uwO%agU=4^ zO~a`UxS8Dh`=32{Qn#mlkU8pgDU`0sF&>|XMOA{$M|7y#sO)J-~Nu7{RQizeQ zKmV|=^7!VqLi1fgQ*+f{QbZ&oZTO%cq?YiyJQB~MKp*%Rip-k!Fn*< zh?#Xf8j9pNk>Kwdsl#+|Iu|etd~Ik?sL6bAFIPYzxFJX+8Or!&;19X+CE$K6F-sVT zhO5D2WV;z*1hN4NI~Q;hcqbQN8<=2|$^mrbb+8Sa(wlG(_{LCy8qxy3&c!`xwo|AGQr zl!Sv|8`qG4+i^8x|=C6?%~N&&0DmpOYSm|%*# z6#F`GGFL!7I1_uudu+G+V*h`^IqZakg$uX`ycZwGK&c}i@&;JV`R@k@ahvcUct?mx z{;L%5A$S|--v+MZnAFe@<~~tXucU|Pm5J5mTUV|ttu1@Ca_z>t(wZ8lc7C2PtgR?r zTUJwEOXn}hS68nrtKaB+Yk@;W6AFGI)Y0;SB;g8eDu`CILvw|;6~w98m3a+sqv)Li zy_(%mH>hBWQ?t)&ucXg4g#@&sR_|k^rKVst`y98@t?*=5Ob30>l%$$AlXjUB+0Q*w uV%n0KxDN5B75)t%2@td;%^FnLXv0tAJREA8R~Q#QqkxdFh7H(l^7B7YsU+k8 delta 3871 zcmb7`4RBP|702(}>}DUyCV87p$R}j;{lO;EAPE@~TnrHi4Q#+gf}uifXn;vE*0fRD zS=JXN+fB;i#iC9^9V!kwC=FX9rivu%5Xg*UY+-C|)e%SCn$VIlVAR0&f8TqXTszd! zH*;p+@0@eb$NhTiJ1Xq`gW$93$hrerS%w@VAvp(Dry1H(328g9BTd&s`X22!3x)ow z_`eE5gWsI+fgt?aKarR(7#gw((f9RzBtB*plNvC>9hk}>B)B$;5P4kO8PP4DqZ!uZ z)K9L3LXP02XsF+if@!g;S=TM!p!L>dSL_$e{722)X(8lmHXQa0#qvAVqUjbYx`#FI zctH&o)h*iG^nrJf0BTpTcS^L5-;$yJIa5RNWM+}^Fcj`U6&=aEyIOC>cs#?hXjNW_ zS9$Xcd1Yop!RsBtJvTxjwCxL55}drHy_W<r>;) zb6LKPv@bi&70#z-k2 z&W0Xab@PgUI;~Z#w4%*usLg~KeI#sBCiz>M`4M`YnWov4YR!Bz+mz|~Ml<2%+x+!6 zmk)~?{5S#Yvp1FQ%PoyO&fZtj*K^B_yYT7`MA7TH%Y=4XnRi*}@)zY731UnZQA9B3kKD;hWI0fyfv(B=jC;$Lu9+=12vdT2p; zw_K#?R%^O^MYmYdE!K1vMOQ_8 zZC2q9dfJu}`P&%8FQo6;(p<5aIj_?+_?d)Vi$`7tf=e?I3E7F7pruchq(`2>5JN3} zwWQqmGi7v)|Em&9gxCl__t57tG_mwqA)UTjdaKYuCran9+=x5ZFo7m8Vct5Er_0xf z(7r8f3W62PctJG|cPJLrtXY*3E%0y$PMYY(MK6gPBN<$c_FHa!Tu6QeSD`zw3AZu3 z2<;2ypw-(UHx|${i#MciX2!wGb6|A$uwHPElo#)lJ@l3`n@~#|%hILG5h$P&UfB2D zKI1joS(ctV$drw2XeS$r!i5o!bK2+iFxTsr*#fy2@(|<^ zNDt(B$SaU@kc*HB$d{0qLW!h6N+DH{b&ze4R*36+%F60$|82`FbhNWta_R9Y(=WuW zfJY#6NGiCsNac8)kt_r|%o3@9J)T66CE%u1iA-v|0=zFxB6f}I!O^g@M}of-oSiO_ z7c_eV_}__WUZ=!!k*!eN3s-f3K$^fO;ZUg!*bTM_v-URdOPv26u%ENL!E2Hw=+uJu zHmbHeV#-f&>Vu`LtKK(;4i`h;Qu)|le52%gYh6{ zEWAWt!Y-jheDTp?G`S8ofpPW}j=gAy;@)R6{|ybGr&W zz$IJ@et}DPC%6IUzC=r~9ee@>hmUOwI2xO5o@RH07jff%171ob*1tLf`=Myz5*`F^ zLI*Z2Ko7W`Tf-yZ5lJGCYW9cF$q|c0-q-j=*l%zN{{%kE@c`KFaA6HZ^;n#Sq8H~h z+|e8025!K4@O`isYYE-~4`T)zHU0?vOU^$CHgWtPu#anS68y9)S0cN#0BpNo;08p3 zMef|1!1r(g%;344e;T-#<4o|I9Or}Aacl#-?!X$orWH^I#XmTQN-)6`k7)MW!3A6a ztH6t}XTryF9rzq)cY@tqJofcZz{d>#Y#(1iGQF&i`!PejQ!ns1$6p&5 z-jW`xHyPL+(n8Jk*#`E>Yh`Ncs85JNnwdvWTk9JA */ + 0, 0, 0, 0, 0, 0, 0, 0, + 0, /* < ... F10 */ + 0, /* 69 - Num lock*/ + 0, /* Scroll Lock */ + 0, /* Home key */ + 0, /* Up Arrow */ + 0, /* Page Up */ + '-', + 0, /* Left Arrow */ + 0, + 0, /* Right Arrow */ + '+', + 0, /* 79 - End key*/ + 0, /* Down Arrow */ + 0, /* Page Down */ + 0, /* Insert Key */ + 0, /* Delete Key */ + 0, 0, 0, + 0, /* F11 Key */ + 0, /* F12 Key */ + 0, /* All other keys are undefined */ +}; + +void keyboard_handler() +{ + unsigned char scancode; + + scancode = inb(0x60); + + if (scancode & 0x80) + { + } + else + { + putc(kbdus[scancode]); + } +} + +void keyboard_install() +{ + irq_install_handler(1, keyboard_handler); +} diff --git a/kernel.elf b/kernel.elf index a95472e29547a9a22f8c7e4e73efe496359b8372..3b8ed7bc0ebd0dc87af384cb5660faf53b807dc2 100755 GIT binary patch delta 4238 zcmb7{3s6+o8OP6E*axz>m!~KQ%Nr3yK{O0%F^2kv#Ymz?3@8|0z7Tv=C+oVXY*!{r zkH#c3G{jfaG%=xDNyl16H<3uD2CD5$;#fyB>JqS{R>eki`#<;Ig<~d@N$<=zdw<{e zo$qm87j_&H97hC)Q6-w1V`J4dT0&}?=SHY+k0IoCb7h2Tn$WhpJy3YhIX&p2AoMr` zL#_(K1Lxh)Bq6LPju2lWKSumaR1@-UG+hxoCYIr1;JIi*((q1Zj@0c^Js+Tc!Rk}~ zxl8Zs+t&7`?l(r=s2*gpxb|UyJAVWr)_z@;Pm}d9jW&jlIs4G#F}bh%L;acPjuVRj#&|F)E6;Dh@#jRJ5FO{imTKWdrO->isidU+u|b3-h6TvYlmQy()DF` zO6gcBeQAbMdH3y<6=dtNQ#Qm@xX7LNgcYGz>S80A#Ub+vHV@g|wWEI!csQ(NFp?8! zo;i-F65PwAwtV@HX?6TqZ6W5};tKi6f)@`*?wj-D1-~|^6fAY3OsJ<`j|tu7HA!>) z6TPfpYv7%w;goX8d@rTa>^#$pclDM%es=Y+rtacUEKg(v-II`^iD&QM($fi3wcm!Y z&X3Y32{VMnbXwwVp~9Jxlp^SM1u?^%aOd*m7X(%R06jSFE$tx@16PL8nJKBd8oXOv z>0z`!rC+<<07FhFtr(xAn}>IcDkHGc|4c6KUTU zd!$19a;*LOCadNVJ0x=zU6P~=lyq5&E?ClyrY)&PA(oy>9j(zIsQPnyB{jlaiCb#8ViOhV8uxbBc{Sl)&1Oj>JFK?t?OrdlG{$<(AP?IlDRqYSeckNU)?;WddStzR z$FIv9X2@gVAkx&s$#FhWIkCR(r2(wbNL&f4JFSf{jv`G~mdR%Qbu?{Bds)+~N7e7s z@6%$;tnmd)C4VkXF{YViIsDco}4gMdlOfb#r1pV_Y;DBbeG^~ zIs3*)8k%ubFw&D5lZ6s`HzR8H1zgqYCbWqOvoF-!_BuKc+EL7=z}?1->t$nSgJeO? zid8Dn4iAefKY+fJd0clv!=PF344%AS2%m&|+v2*9%b4ARxf88!qrJh}kwiPPUX1)Z zu1U)o8#7u+vV2aY7yH|UrcX%~66x|OkzzUA)ba9t-sGr$KpUq-nzNbmkspROvY{wk z=&}_JI_wUHIYooD4;+r+TUWzUxz58MTdu0a9seI`r#9vd7~1m&8alQ_uwO%agU=4^ zO~a`UxS8Dh`=32{Qn#mlkU8pgDU`0sF&>|XMOA{$M|7y#sO)J-~Nu7{RQizeQ zKmV|=^7!VqLi1fgQ*+f{QbZ&oZTO%cq?YiyJQB~MKp*%Rip-k!Fn*< zh?#Xf8j9pNk>Kwdsl#+|Iu|etd~Ik?sL6bAFIPYzxFJX+8Or!&;19X+CE$K6F-sVT zhO5D2WV;z*1hN4NI~Q;hcqbQN8<=2|$^mrbb+8Sa(wlG(_{LCy8qxy3&c!`xwo|AGQr zl!Sv|8`qG4+i^8x|=C6?%~N&&0DmpOYSm|%*# z6#F`GGFL!7I1_uudu+G+V*h`^IqZakg$uX`ycZwGK&c}i@&;JV`R@k@ahvcUct?mx z{;L%5A$S|--v+MZnAFe@<~~tXucU|Pm5J5mTUV|ttu1@Ca_z>t(wZ8lc7C2PtgR?r zTUJwEOXn}hS68nrtKaB+Yk@;W6AFGI)Y0;SB;g8eDu`CILvw|;6~w98m3a+sqv)Li zy_(%mH>hBWQ?t)&ucXg4g#@&sR_|k^rKVst`y98@t?*=5Ob30>l%$$AlXjUB+0Q*w uV%n0KxDN5B75)t%2@td;%^FnLXv0tAJREA8R~Q#QqkxdFh7H(l^7B7YsU+k8 delta 3871 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�w+zq1 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 z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK TfB^#r3>YwAz<>b*2F8H^t_#ru diff --git a/system.h b/system.h index 6104e5b..fc459fc 100644 --- a/system.h +++ b/system.h @@ -19,5 +19,6 @@ void irq_install_handler(int irq, void (*handler)(struct regs *r)); void irq_uninstall_handler(int irq); void timer_install(); void delay(int ticks); +void keyboard_install(); #endif