git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added BochsGA to build
[tpg/acess2.git]
/
Kernel
/
drv
/
kb.c
diff --git
a/Kernel/drv/kb.c
b/Kernel/drv/kb.c
index
07e07f5
..
b67c8e3
100644
(file)
--- a/
Kernel/drv/kb.c
+++ b/
Kernel/drv/kb.c
@@
-14,8
+14,9
@@
#define USE_KERNEL_MAGIC 1
// === IMPORTS ===
#define USE_KERNEL_MAGIC 1
// === IMPORTS ===
-void Threads_Dump(void);
-void Heap_Stats(void);
+extern void Threads_ToggleTrace(int TID);
+extern void Threads_Dump(void);
+extern void Heap_Stats(void);
// === PROTOTYPES ===
int KB_Install(char **Arguments);
// === PROTOTYPES ===
int KB_Install(char **Arguments);
@@
-191,12
+192,19
@@
void KB_IRQHandler(int IRQNum)
case '8': case '9': case 'a': case 'b':
case 'c': case 'd': case 'e': case 'f':
{
case '8': case '9': case 'a': case 'b':
case 'c': case 'd': case 'e': case 'f':
{
- char str[
2] = {ch,
0};
- if(giKB_MagicAddressPos == BITS/4)
break
;
+ char str[
4] = {'0', 'x', ch,
0};
+ if(giKB_MagicAddressPos == BITS/4)
return
;
giKB_MagicAddress |= atoi(str) << giKB_MagicAddressPos;
giKB_MagicAddressPos ++;
}
giKB_MagicAddress |= atoi(str) << giKB_MagicAddressPos;
giKB_MagicAddressPos ++;
}
- break;
+ return;
+
+ // Instruction Tracing
+ case 't':
+ Log("Toggle instruction tracing on %i\n", giKB_MagicAddress);
+ Threads_ToggleTrace( giKB_MagicAddress );
+ giKB_MagicAddress = 0; giKB_MagicAddressPos = 0;
+ return;
// Thread List Dump
case 'p': Threads_Dump(); return;
// Thread List Dump
case 'p': Threads_Dump(); return;
@@
-208,10
+216,10
@@
void KB_IRQHandler(int IRQNum)
}
#endif
}
#endif
- // Is shift pressed
- // - Darn ugly hacks !!x means (bool)x
- if( !!gbKB_ShiftState ^ gbKB_CapsState)
+ // Capitals required?
+ if( (gbKB_ShiftState != 0) != (gbKB_CapsState != 0))
{
{
+ // TODO: Move this to the keyboard map header
switch(ch)
{
case 0: break;
switch(ch)
{
case 0: break;
UCC
git Repository :: git.ucc.asn.au