Import backup from 2003-09-12

This commit is contained in:
Josh Holtrop 2003-09-12 22:00:00 -04:00
parent a40131b163
commit e8b1abb265
3 changed files with 18 additions and 11 deletions

4
io.asm
View File

@ -184,10 +184,10 @@ printf_loop:
inc ebx inc ebx
cmp al, 0 cmp al, 0
jzfar printf_done jzfar printf_done
cmp al, '%'
jzfar printf_percent
cmp ecx, 1 cmp ecx, 1
jz printf_special jz printf_special
cmp al, '%'
jzfar printf_percent
push eax push eax
call _putc call _putc

View File

@ -36,10 +36,13 @@ void k_init()
mm_init(); mm_init();
enable_ints(); enable_ints();
console_cls(); console_cls();
printf("Memory available to OS: %d MB\n (Bytes: %d)", mm_totalmem/0x100000, mm_totalmem); printf("Memory available to OS: %d MB (Bytes: %d)\n", mm_totalmem/0x100000, mm_totalmem);
dword key = 0;
for (;;) for (;;)
printf("%c ", kbdWaitKey()); {
key = kbdWaitKey();
printf("Key %c ", key);
}
/* pageblock *pb = first_pageblock; /* pageblock *pb = first_pageblock;
for (;;) for (;;)
{ {

View File

@ -30,7 +30,7 @@ void isr_keyboard()
outportb(0x61, inState|0x80); outportb(0x61, inState|0x80);
outportb(0x61, inState); outportb(0x61, inState);
printf("IRQ 1: %x\n", kbdScan); //printf("IRQ 1: %x\n", kbdScan);
if (kbdScan == 0xFA) //250 //ACKnowledge if (kbdScan == 0xFA) //250 //ACKnowledge
{ {
@ -188,8 +188,8 @@ void isr_keyboard()
} }
else else
{ {
kbdBuffer[(kbdBufferStart+kbdBufferLen)%KBD_BUFFER_LENGTH] = (dword) ((kbdFlags << 16) | (kbdScan << 8) | kbdAscii); kbdBuffer[(kbdBufferStart+kbdBufferLen++)%KBD_BUFFER_LENGTH] = (dword) ((kbdFlags << 16) | (kbdScan << 8) | kbdAscii);
kbdBufferLen++; // printf("S:%d\tL:%d\tR:%x\n", kbdBufferStart, kbdBufferLen, kbdBuffer[kbdBufferStart]);
} }
} }
@ -197,7 +197,7 @@ void isr_keyboard()
// if (key == 0xFA) //ACKnowledge // if (key == 0xFA) //ACKnowledge
// outportb(0x60, 0x3); // outportb(0x60, 0x3);
}; }
inline byte switchCase(byte asciiCode) inline byte switchCase(byte asciiCode)
{ {
@ -212,8 +212,9 @@ dword kbdGetKey()
{ {
if (kbdBufferLen == 0) //buffer empty if (kbdBufferLen == 0) //buffer empty
return 0; return 0;
// printf("kbdBufferLen == %d", kbdBufferLen);
dword retVal = kbdBuffer[kbdBufferStart]; dword retVal = kbdBuffer[kbdBufferStart];
printf("S:%d\tE:%d\tR:%x\n", kbdBufferStart, kbdBufferLen, retVal); //printf("S:%d\tE:%d\tR:%x\n", kbdBufferStart, kbdBufferLen, retVal);
kbdBufferStart++; kbdBufferStart++;
kbdBufferLen--; kbdBufferLen--;
if (kbdBufferStart == KBD_BUFFER_LENGTH) if (kbdBufferStart == KBD_BUFFER_LENGTH)
@ -224,15 +225,18 @@ dword kbdGetKey()
dword kbdWaitKey() dword kbdWaitKey()
{ {
dword retVal = 0; dword retVal = 0;
{
for (;;) for (;;)
{ {
retVal = kbdGetKey(); retVal = kbdGetKey();
//printf("retVal = %x\n", retVal);
if (retVal != 0) if (retVal != 0)
{ {
printf("S:%d\tE:%d\tR:%x\n", kbdBufferStart, kbdBufferLen, retVal); //printf("S:%d\tE:%d\tR:%x\n", kbdBufferStart, kbdBufferLen, retVal);
return retVal; return retVal;
} }
} }
}
} }
inline void kbd_resetLEDs() inline void kbd_resetLEDs()