Import backup from 2003-09-12
This commit is contained in:
parent
a40131b163
commit
e8b1abb265
4
io.asm
4
io.asm
@ -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
|
||||||
|
9
kernel.c
9
kernel.c
@ -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 (;;)
|
||||||
{
|
{
|
||||||
|
16
keyboard.c
16
keyboard.c
@ -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()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user