#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);
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 ++;
}
- 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;
}
#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;