../../boot/kernel.bin: file format elf32-i386-freebsd
Disassembly of section .text:
00100000 <klog>:
#include "_krnl.h"
#include "bootlog.h"
void klog(char *proc, char *entry, KLOGRESULT result, console_t *vtty0)
{
100000: 55 push %ebp
100001: 89 e5 mov %esp,%ebp
100003: 57 push %edi
100004: 56 push %esi
100005: 53 push %ebx
100006: 83 ec 0c sub $0xc,%esp
100009: 8b 45 10 mov 0x10(%ebp),%eax
10000c: 8b 5d 14 mov 0x14(%ebp),%ebx
unsigned oldattrib;
int i = 0;
10000f: 31 f6 xor %esi,%esi
int offset = 69; /* -4 for the "[ ]" part, -2 for the ": " part, -1 for space at end, and -4 for the status */
char status[4];
va_list args;
args = args;
status[0] = '\0';
/**
* Save our old color attributes
*/
oldattrib = vtty0->attrib;
if(result == K_KLOG_SUCCESS)
100011: 85 c0 test %eax,%eax
100013: c7 45 f0 45 00 00 00 movl $0x45,0xfffffff0(%ebp)
10001a: 8b 7b 18 mov 0x18(%ebx),%edi
10001d: 0f 84 d5 00 00 00 je 1000f8 <LS_Phys+0xf8>
{
/**
* Successfull initialization of something.
* Write "..Ok" then leave
*/
vtty0->attrib = 8;
printf("\b\b\b\b..");
vtty0->attrib = 2;
printf("Ok\n");
vtty0->attrib = oldattrib;
return;
}
else if(result == K_KLOG_FAILURE)
100023: 83 f8 02 cmp $0x2,%eax
100026: 0f 84 b8 00 00 00 je 1000e4 <LS_Phys+0xe4>
{
/**
* Unsuccessfull initialization of something.
* Write "Fail" then leave
*/
vtty0->attrib = 4;
printf("\b\b\b\bFail\n");
vtty0->attrib = oldattrib;
return;
}
/**
* FIXME
*
* Should "wrap" the line instead
*/
if(strlen(entry) + 8 > 80)
10002c: 83 ec 0c sub $0xc,%esp
10002f: ff 75 0c pushl 0xc(%ebp)
100032: e8 21 51 00 00 call 105158 <strlen>
100037: 83 c0 08 add $0x8,%eax
10003a: 83 c4 10 add $0x10,%esp
10003d: 83 f8 50 cmp $0x50,%eax
100040: 76 0a jbe 10004c <LS_Phys+0x4c>
return;
vtty0->attrib = 8;
printf("[ ");
vtty0->attrib = 15;
printf("%s: %s", proc, entry);
vtty0->attrib = 8;
printf(" ]");
offset -= strlen(proc);
offset -= strlen(entry);
for(i = 0; i < offset; i++)
printf(".");
vtty0->attrib = 8;
printf("Wait");
vtty0->attrib = oldattrib;
}
100042: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
100045: 5b pop %ebx
100046: 5e pop %esi
100047: 5f pop %edi
100048: c9 leave
100049: c3 ret
10004a: 89 f6 mov %esi,%esi
10004c: 83 ec 0c sub $0xc,%esp
10004f: c7 43 18 08 00 00 00 movl $0x8,0x18(%ebx)
100056: 68 b6 51 10 00 push $0x1051b6
10005b: e8 74 50 00 00 call 1050d4 <printf>
100060: 83 c4 0c add $0xc,%esp
100063: c7 43 18 0f 00 00 00 movl $0xf,0x18(%ebx)
10006a: ff 75 0c pushl 0xc(%ebp)
10006d: ff 75 08 pushl 0x8(%ebp)
100070: 68 b9 51 10 00 push $0x1051b9
100075: e8 5a 50 00 00 call 1050d4 <printf>
10007a: c7 43 18 08 00 00 00 movl $0x8,0x18(%ebx)
100081: c7 04 24 c0 51 10 00 movl $0x1051c0,(%esp,1)
100088: e8 47 50 00 00 call 1050d4 <printf>
10008d: 5a pop %edx
10008e: ff 75 08 pushl 0x8(%ebp)
100091: e8 c2 50 00 00 call 105158 <strlen>
100096: 29 45 f0 sub %eax,0xfffffff0(%ebp)
100099: 58 pop %eax
10009a: ff 75 0c pushl 0xc(%ebp)
10009d: e8 b6 50 00 00 call 105158 <strlen>
1000a2: 29 45 f0 sub %eax,0xfffffff0(%ebp)
1000a5: 83 c4 10 add $0x10,%esp
1000a8: 3b 75 f0 cmp 0xfffffff0(%ebp),%esi
1000ab: 7d 16 jge 1000c3 <LS_Phys+0xc3>
1000ad: 8b 75 f0 mov 0xfffffff0(%ebp),%esi
1000b0: 83 ec 0c sub $0xc,%esp
1000b3: 68 1a 63 10 00 push $0x10631a
1000b8: e8 17 50 00 00 call 1050d4 <printf>
1000bd: 83 c4 10 add $0x10,%esp
1000c0: 4e dec %esi
1000c1: 75 ed jne 1000b0 <LS_Phys+0xb0>
1000c3: 83 ec 0c sub $0xc,%esp
1000c6: c7 43 18 08 00 00 00 movl $0x8,0x18(%ebx)
1000cd: 68 c3 51 10 00 push $0x1051c3
1000d2: 89 f6 mov %esi,%esi
1000d4: e8 fb 4f 00 00 call 1050d4 <printf>
1000d9: 89 7b 18 mov %edi,0x18(%ebx)
1000dc: e9 61 ff ff ff jmp 100042 <LS_Phys+0x42>
1000e1: 8d 76 00 lea 0x0(%esi),%esi
1000e4: 83 ec 0c sub $0xc,%esp
1000e7: c7 43 18 04 00 00 00 movl $0x4,0x18(%ebx)
1000ee: 68 c8 51 10 00 push $0x1051c8
1000f3: eb df jmp 1000d4 <LS_Phys+0xd4>
1000f5: 8d 76 00 lea 0x0(%esi),%esi
1000f8: 83 ec 0c sub $0xc,%esp
1000fb: c7 43 18 08 00 00 00 movl $0x8,0x18(%ebx)
100102: 68 d2 51 10 00 push $0x1051d2
100107: e8 c8 4f 00 00 call 1050d4 <printf>
10010c: c7 43 18 02 00 00 00 movl $0x2,0x18(%ebx)
100113: c7 04 24 d9 51 10 00 movl $0x1051d9,(%esp,1)
10011a: eb b8 jmp 1000d4 <LS_Phys+0xd4>
0010011c <dump>:
*****************************************************************************/
#define BPERL 16 /* byte/line for dump */
void dump(unsigned char *data, unsigned count)
{
10011c: 55 push %ebp
10011d: 89 e5 mov %esp,%ebp
10011f: 57 push %edi
100120: 56 push %esi
100121: 53 push %ebx
100122: 83 ec 0c sub $0xc,%esp
100125: 8b 75 0c mov 0xc(%ebp),%esi
unsigned char byte1, byte2;
while(count != 0)
100128: 85 f6 test %esi,%esi
10012a: 0f 84 86 00 00 00 je 1001b6 <dump+0x9a>
{
for(byte1 = 0; byte1 < BPERL; byte1++)
100130: 31 ff xor %edi,%edi
100132: 8b 5d 08 mov 0x8(%ebp),%ebx
100135: 8d 76 00 lea 0x0(%esi),%esi
{
if(count == 0)
100138: 85 f6 test %esi,%esi
10013a: 74 1d je 100159 <dump+0x3d>
break;
printf("%02X ", data[byte1]);
10013c: 83 ec 08 sub $0x8,%esp
10013f: 0f b6 03 movzbl (%ebx),%eax
100142: 50 push %eax
100143: 68 dd 51 10 00 push $0x1051dd
100148: 47 inc %edi
100149: e8 86 4f 00 00 call 1050d4 <printf>
10014e: 89 f8 mov %edi,%eax
count--;
100150: 4e dec %esi
100151: 83 c4 10 add $0x10,%esp
100154: 43 inc %ebx
100155: 3c 0f cmp $0xf,%al
100157: 76 df jbe 100138 <dump+0x1c>
}
printf("\t");
100159: 83 ec 0c sub $0xc,%esp
10015c: 68 e3 51 10 00 push $0x1051e3
100161: e8 6e 4f 00 00 call 1050d4 <printf>
for(byte2 = 0; byte2 < byte1; byte2++)
100166: 31 db xor %ebx,%ebx
100168: 89 fa mov %edi,%edx
10016a: 83 c4 10 add $0x10,%esp
10016d: 38 d3 cmp %dl,%bl
10016f: 73 29 jae 10019a <dump+0x7e>
100171: 8d 76 00 lea 0x0(%esi),%esi
{
if(data[byte2] < ' ')
100174: 0f b6 c3 movzbl %bl,%eax
100177: 8b 55 08 mov 0x8(%ebp),%edx
10017a: 8a 04 10 mov (%eax,%edx,1),%al
10017d: 3c 1f cmp $0x1f,%al
10017f: 77 3f ja 1001c0 <dump+0xa4>
printf("%c", '.');
100181: 83 ec 08 sub $0x8,%esp
100184: 6a 2e push $0x2e
100186: 68 e5 51 10 00 push $0x1051e5
10018b: e8 44 4f 00 00 call 1050d4 <printf>
100190: 43 inc %ebx
100191: 89 f8 mov %edi,%eax
else
printf("%c", data[byte2]);
100193: 83 c4 10 add $0x10,%esp
100196: 38 c3 cmp %al,%bl
100198: 72 da jb 100174 <dump+0x58>
}
printf("\n");
10019a: 83 ec 0c sub $0xc,%esp
10019d: 68 f8 5a 10 00 push $0x105af8
1001a2: e8 2d 4f 00 00 call 1050d4 <printf>
data += BPERL;
1001a7: 83 45 08 10 addl $0x10,0x8(%ebp)
1001ab: 83 c4 10 add $0x10,%esp
1001ae: 85 f6 test %esi,%esi
1001b0: 0f 85 7a ff ff ff jne 100130 <dump+0x14>
}
}
1001b6: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
1001b9: 5b pop %ebx
1001ba: 5e pop %esi
1001bb: 5f pop %edi
1001bc: c9 leave
1001bd: c3 ret
1001be: 89 f6 mov %esi,%esi
1001c0: 83 ec 08 sub $0x8,%esp
1001c3: 0f b6 c0 movzbl %al,%eax
1001c6: 50 push %eax
1001c7: eb bd jmp 100186 <dump+0x6a>
1001c9: 8d 76 00 lea 0x0(%esi),%esi
001001cc <dump_regs>:
/*****************************************************************************
*****************************************************************************/
void dump_regs(regs_t *regs)
{
1001cc: 55 push %ebp
1001cd: 89 e5 mov %esp,%ebp
1001cf: 53 push %ebx
1001d0: 83 ec 10 sub $0x10,%esp
1001d3: 8b 5d 08 mov 0x8(%ebp),%ebx
printf("EDI=%08X ESI=%08X EBP=%08X ESP=%08X\n",
1001d6: ff 73 0c pushl 0xc(%ebx)
1001d9: ff 73 08 pushl 0x8(%ebx)
1001dc: ff 73 04 pushl 0x4(%ebx)
1001df: ff 33 pushl (%ebx)
1001e1: 68 00 52 10 00 push $0x105200
1001e6: e8 e9 4e 00 00 call 1050d4 <printf>
regs->edi, regs->esi, regs->ebp, regs->esp);
printf("EBX=%08X EDX=%08X ECX=%08X EAX=%08X\n",
1001eb: 83 c4 14 add $0x14,%esp
1001ee: ff 73 1c pushl 0x1c(%ebx)
1001f1: ff 73 18 pushl 0x18(%ebx)
1001f4: ff 73 14 pushl 0x14(%ebx)
1001f7: ff 73 10 pushl 0x10(%ebx)
1001fa: 68 40 52 10 00 push $0x105240
1001ff: e8 d0 4e 00 00 call 1050d4 <printf>
regs->ebx, regs->edx, regs->ecx, regs->eax);
printf(" DS=%08X ES=%08X FS=%08X GS=%08X\n",
100204: 83 c4 14 add $0x14,%esp
100207: ff 73 2c pushl 0x2c(%ebx)
10020a: ff 73 28 pushl 0x28(%ebx)
10020d: ff 73 24 pushl 0x24(%ebx)
100210: ff 73 20 pushl 0x20(%ebx)
100213: 68 80 52 10 00 push $0x105280
100218: e8 b7 4e 00 00 call 1050d4 <printf>
regs->ds, regs->es, regs->fs, regs->gs);
printf("int=%08X err=%08X EIP=%08X CS=%08X\n",
10021d: 83 c4 14 add $0x14,%esp
100220: ff 73 3c pushl 0x3c(%ebx)
100223: ff 73 38 pushl 0x38(%ebx)
100226: ff 73 34 pushl 0x34(%ebx)
100229: ff 73 30 pushl 0x30(%ebx)
10022c: 68 c0 52 10 00 push $0x1052c0
100231: e8 9e 4e 00 00 call 1050d4 <printf>
regs->which_int, regs->err_code, regs->eip, regs->cs);
printf("uSP=%08X uSS=%08X\n", regs->user_esp, regs->user_ss);
100236: 83 c4 1c add $0x1c,%esp
100239: ff 73 48 pushl 0x48(%ebx)
10023c: ff 73 44 pushl 0x44(%ebx)
10023f: 68 e8 51 10 00 push $0x1051e8
100244: e8 8b 4e 00 00 call 1050d4 <printf>
}
100249: 8b 5d fc mov 0xfffffffc(%ebp),%ebx
10024c: c9 leave
10024d: c3 ret
...
00100250 <keyDown>:
*
* @return void
*/
void keyDown(unsigned key)
{
100250: 55 push %ebp
100251: 89 e5 mov %esp,%ebp
key = key; /* to shut gcc up */
}
100253: c9 leave
100254: c3 ret
100255: 8d 76 00 lea 0x0(%esi),%esi
00100258 <keyUp>:
/**
* keyUp()
*
* This function is called when a key is released.
*
* @param unsigned Which key was released. See keyboard.h
*
* @return void
*/
void keyUp(unsigned key)
{
100258: 55 push %ebp
100259: 89 e5 mov %esp,%ebp
key = key; /* to shut gcc up */
}
10025b: c9 leave
10025c: c3 ret
10025d: 8d 76 00 lea 0x0(%esi),%esi
00100260 <initCommands>:
void initCommands(void)
{
100260: 55 push %ebp
100261: 89 e5 mov %esp,%ebp
100263: 83 ec 10 sub $0x10,%esp
eshCommands[0].minparams = 0;
eshCommands[0].maxparams = 0;
strcpy(eshCommands[0].command, "dumpheap\0");
100266: 68 00 53 10 00 push $0x105300
10026b: 68 48 3a 18 00 push $0x183a48
100270: c7 05 40 3a 18 00 00 movl $0x0,0x183a40
100277: 00 00 00
10027a: c7 05 44 3a 18 00 00 movl $0x0,0x183a44
100281: 00 00 00
100284: e8 b3 4e 00 00 call 10513c <strcpy>
strcpy(eshCommands[0].params[0], "-h\0");
100289: 58 pop %eax
10028a: 5a pop %edx
10028b: 68 0a 53 10 00 push $0x10530a
100290: 68 48 3c 18 00 push $0x183c48
100295: e8 a2 4e 00 00 call 10513c <strcpy>
strcpy(eshCommands[0].description, "Print listing of heap usage and status.\0");
10029a: 59 pop %ecx
10029b: 58 pop %eax
10029c: 68 20 53 10 00 push $0x105320
1002a1: 68 48 64 18 00 push $0x186448
1002a6: e8 91 4e 00 00 call 10513c <strcpy>
eshCommands[1].minparams = 1;
eshCommands[1].maxparams = MAX_PARAMS;
strcpy(eshCommands[1].params[0], "-h\0");
1002ab: 58 pop %eax
1002ac: 5a pop %edx
1002ad: 68 0a 53 10 00 push $0x10530a
1002b2: 68 50 68 18 00 push $0x186850
1002b7: c7 05 48 66 18 00 01 movl $0x1,0x186648
1002be: 00 00 00
1002c1: c7 05 4c 66 18 00 14 movl $0x14,0x18664c
1002c8: 00 00 00
1002cb: e8 6c 4e 00 00 call 10513c <strcpy>
strcpy(eshCommands[1].command, "echo\0");
1002d0: 59 pop %ecx
1002d1: 58 pop %eax
1002d2: 68 49 53 10 00 push $0x105349
1002d7: 68 50 66 18 00 push $0x186650
1002dc: e8 5b 4e 00 00 call 10513c <strcpy>
strcpy(eshCommands[1].description, "Echo a line of text to the terminal.\0");
1002e1: 58 pop %eax
1002e2: 5a pop %edx
1002e3: 68 60 53 10 00 push $0x105360
1002e8: 68 50 90 18 00 push $0x189050
1002ed: e8 4a 4e 00 00 call 10513c <strcpy>
/*this will be called with either "help" or "help command" */
eshCommands[2].minparams = 0;
eshCommands[2].maxparams = 1;
strcpy(eshCommands[2].params[0], "-h\0");
1002f2: 59 pop %ecx
1002f3: 58 pop %eax
1002f4: 68 0a 53 10 00 push $0x10530a
1002f9: 68 58 94 18 00 push $0x189458
1002fe: c7 05 50 92 18 00 00 movl $0x0,0x189250
100305: 00 00 00
100308: c7 05 54 92 18 00 01 movl $0x1,0x189254
10030f: 00 00 00
100312: e8 25 4e 00 00 call 10513c <strcpy>
strcpy(eshCommands[2].command, "help\0");
100317: 58 pop %eax
100318: 5a pop %edx
100319: 68 86 53 10 00 push $0x105386
10031e: 68 58 92 18 00 push $0x189258
100323: e8 14 4e 00 00 call 10513c <strcpy>
strcpy(eshCommands[2].description, "Displays general help menu or help on specific command.\0");
100328: 59 pop %ecx
100329: 58 pop %eax
10032a: 68 a0 53 10 00 push $0x1053a0
10032f: 68 58 bc 18 00 push $0x18bc58
100334: e8 03 4e 00 00 call 10513c <strcpy>
/* -r|-h [time] */
eshCommands[3].minparams = 1;
eshCommands[3].maxparams = 2;
strcpy(eshCommands[3].command, "shutdown\0");
100339: 58 pop %eax
10033a: 5a pop %edx
10033b: 68 d9 53 10 00 push $0x1053d9
100340: 68 60 be 18 00 push $0x18be60
100345: c7 05 58 be 18 00 01 movl $0x1,0x18be58
10034c: 00 00 00
10034f: c7 05 5c be 18 00 02 movl $0x2,0x18be5c
100356: 00 00 00
100359: e8 de 4d 00 00 call 10513c <strcpy>
strcpy(eshCommands[3].params[0], "-r\0");
10035e: 59 pop %ecx
10035f: 58 pop %eax
100360: 68 e3 53 10 00 push $0x1053e3
100365: 68 60 c0 18 00 push $0x18c060
10036a: e8 cd 4d 00 00 call 10513c <strcpy>
strcpy(eshCommands[3].params[1], "-h\0");
10036f: 58 pop %eax
100370: 5a pop %edx
100371: 68 0a 53 10 00 push $0x10530a
100376: 68 60 c2 18 00 push $0x18c260
10037b: e8 bc 4d 00 00 call 10513c <strcpy>
strcpy(eshCommands[3].params[2], "NOW\0");
100380: 59 pop %ecx
100381: 58 pop %eax
100382: 68 e7 53 10 00 push $0x1053e7
100387: 68 60 c4 18 00 push $0x18c460
10038c: e8 ab 4d 00 00 call 10513c <strcpy>
strcpy(eshCommands[3].description, "Halt or restart the system.\0");
100391: 58 pop %eax
100392: 5a pop %edx
100393: 68 ec 53 10 00 push $0x1053ec
100398: 68 60 e8 18 00 push $0x18e860
10039d: e8 9a 4d 00 00 call 10513c <strcpy>
/* clear screen */
eshCommands[4].minparams = 0;
eshCommands[4].maxparams = 0;
strcpy(eshCommands[4].params[0], "-h\0");
1003a2: 59 pop %ecx
1003a3: 58 pop %eax
1003a4: 68 0a 53 10 00 push $0x10530a
1003a9: 68 68 ec 18 00 push $0x18ec68
1003ae: c7 05 60 ea 18 00 00 movl $0x0,0x18ea60
1003b5: 00 00 00
1003b8: c7 05 64 ea 18 00 00 movl $0x0,0x18ea64
1003bf: 00 00 00
1003c2: e8 75 4d 00 00 call 10513c <strcpy>
strcpy(eshCommands[4].command, "cls\0");
1003c7: 58 pop %eax
1003c8: 5a pop %edx
1003c9: 68 09 54 10 00 push $0x105409
1003ce: 68 68 ea 18 00 push $0x18ea68
1003d3: e8 64 4d 00 00 call 10513c <strcpy>
strcpy(eshCommands[4].description, "Clears the terminal of all output.\0");
1003d8: 59 pop %ecx
1003d9: 58 pop %eax
1003da: 68 20 54 10 00 push $0x105420
1003df: 68 68 14 19 00 push $0x191468
1003e4: e8 53 4d 00 00 call 10513c <strcpy>
/* print working directory */
eshCommands[5].minparams = 0;
eshCommands[5].maxparams = 0;
strcpy(eshCommands[5].params[0], "-h\0");
1003e9: 58 pop %eax
1003ea: 5a pop %edx
1003eb: 68 0a 53 10 00 push $0x10530a
1003f0: 68 70 18 19 00 push $0x191870
1003f5: c7 05 68 16 19 00 00 movl $0x0,0x191668
1003fc: 00 00 00
1003ff: c7 05 6c 16 19 00 00 movl $0x0,0x19166c
100406: 00 00 00
100409: e8 2e 4d 00 00 call 10513c <strcpy>
strcpy(eshCommands[5].command, "pwd\0");
10040e: 59 pop %ecx
10040f: 58 pop %eax
100410: 68 44 54 10 00 push $0x105444
100415: 68 70 16 19 00 push $0x191670
10041a: e8 1d 4d 00 00 call 10513c <strcpy>
strcpy(eshCommands[5].description, "Prints the current working directory.\0");
10041f: 58 pop %eax
100420: 5a pop %edx
100421: 68 60 54 10 00 push $0x105460
100426: 68 70 40 19 00 push $0x194070
10042b: e8 0c 4d 00 00 call 10513c <strcpy>
}
100430: c9 leave
100431: c3 ret
100432: 89 f6 mov %esi,%esi
00100434 <mapCommand>:
/**
* mapCommand()
*
* Used internally by esh to map a command to it's zero-based
* index of commands.
*
* @param char * the entire line of the command
*
* @return int index of command entry if found, otherwise -1
*/
int mapCommand(char *cmd)
{
100434: 55 push %ebp
100435: 89 e5 mov %esp,%ebp
100437: 57 push %edi
100438: 56 push %esi
100439: 53 push %ebx
10043a: 81 ec 0c 02 00 00 sub $0x20c,%esp
100440: 8b 75 08 mov 0x8(%ebp),%esi
int i; /* for our loops */
int params; /* number of parameters found for the command */
int previdx; /* previous index */
char cmdName[MAX_LEN]; /* name of the command */
i = 0;
100443: 31 db xor %ebx,%ebx
100445: 8d 76 00 lea 0x0(%esi),%esi
previdx = 0;
params = 0;
/**
* Loop while cmd[i] is not a space
*/
i = 0;
for(i = 0; i < (int)strlen(cmd); i++)
100448: 83 ec 0c sub $0xc,%esp
10044b: 56 push %esi
10044c: e8 07 4d 00 00 call 105158 <strlen>
100451: 83 c4 10 add $0x10,%esp
100454: 39 c3 cmp %eax,%ebx
100456: 7d 09 jge 100461 <mapCommand+0x2d>
{
if(cmd[i] == ' ')
100458: 80 3c 33 20 cmpb $0x20,(%ebx,%esi,1)
10045c: 74 03 je 100461 <mapCommand+0x2d>
10045e: 43 inc %ebx
10045f: eb e7 jmp 100448 <mapCommand+0x14>
break;
}
strncpy(cmdName, cmd, i);
100461: 51 push %ecx
100462: 53 push %ebx
100463: 56 push %esi
100464: 8d bd e8 fd ff ff lea 0xfffffde8(%ebp),%edi
10046a: 57 push %edi
10046b: e8 04 4d 00 00 call 105174 <strncpy>
cmdName[i] = '\0';
for(i = 0; i < COMMAND_COUNT; i++)
100470: be 48 3a 18 00 mov $0x183a48,%esi
100475: c6 84 2b e8 fd ff ff movb $0x0,0xfffffde8(%ebx,%ebp,1)
10047c: 00
10047d: 83 c4 10 add $0x10,%esp
100480: 31 db xor %ebx,%ebx
100482: 89 f6 mov %esi,%esi
{
if(!strcmp(eshCommands[i].command, cmdName))
100484: 83 ec 08 sub $0x8,%esp
100487: 57 push %edi
100488: 56 push %esi
100489: e8 62 4c 00 00 call 1050f0 <strcmp>
10048e: 83 c4 10 add $0x10,%esp
100491: 85 c0 test %eax,%eax
100493: 89 da mov %ebx,%edx
100495: 74 11 je 1004a8 <mapCommand+0x74>
100497: 43 inc %ebx
100498: 81 c6 08 2c 00 00 add $0x2c08,%esi
10049e: 83 fb 05 cmp $0x5,%ebx
1004a1: 7e e1 jle 100484 <mapCommand+0x50>
return i;
}
return -1;
1004a3: ba ff ff ff ff mov $0xffffffff,%edx
}
1004a8: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
1004ab: 5b pop %ebx
1004ac: 5e pop %esi
1004ad: 89 d0 mov %edx,%eax
1004af: 5f pop %edi
1004b0: c9 leave
1004b1: c3 ret
1004b2: 89 f6 mov %esi,%esi
001004b4 <isParam>:
/**
* isParam()
*
* Determines if the supplied parameter is valid for the
* given command.
*
* @param int index of command
* @param char * command string
*
* @return bool true if parameter is valid, false otherwise
*/
bool isParam(int argc, char *argv)
{
1004b4: 55 push %ebp
1004b5: 89 e5 mov %esp,%ebp
1004b7: 57 push %edi
1004b8: 56 push %esi
1004b9: 53 push %ebx
1004ba: 83 ec 0c sub $0xc,%esp
1004bd: 8b 55 08 mov 0x8(%ebp),%edx
int i;
for(i = 0; i < MAX_PARAMS; i++)
1004c0: 8d 04 92 lea (%edx,%edx,4),%eax
1004c3: 8d 04 42 lea (%edx,%eax,2),%eax
1004c6: c1 e0 07 shl $0x7,%eax
1004c9: 01 d0 add %edx,%eax
1004cb: 8b 7d 0c mov 0xc(%ebp),%edi
1004ce: 31 f6 xor %esi,%esi
1004d0: 8d 1c c5 48 3c 18 00 lea 0x183c48(,%eax,8),%ebx
1004d7: 90 nop
{
if(!strcmp(eshCommands[argc].params[i], argv))
1004d8: 83 ec 08 sub $0x8,%esp
1004db: 57 push %edi
1004dc: 53 push %ebx
1004dd: e8 0e 4c 00 00 call 1050f0 <strcmp>
1004e2: 83 c4 10 add $0x10,%esp
1004e5: 85 c0 test %eax,%eax
1004e7: ba 01 00 00 00 mov $0x1,%edx
1004ec: 74 0e je 1004fc <isParam+0x48>
1004ee: 46 inc %esi
1004ef: 81 c3 00 02 00 00 add $0x200,%ebx
1004f5: 83 fe 13 cmp $0x13,%esi
1004f8: 7e de jle 1004d8 <isParam+0x24>
return true;
}
return false;
1004fa: 31 d2 xor %edx,%edx
}
1004fc: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
1004ff: 5b pop %ebx
100500: 5e pop %esi
100501: 89 d0 mov %edx,%eax
100503: 5f pop %edi
100504: c9 leave
100505: c3 ret
100506: 89 f6 mov %esi,%esi
00100508 <mapParams>:
/**
* mapParams()
*
* Maps each parameter to the pars struct
*
* @param char * Buffer from the command line
* @param struct Parameter structure
*
* @return int Number of command line parameters (arguments) parsed
*/
int mapParams(char *buf, ESHCURRCOMMAND *pars)
{
100508: 55 push %ebp
100509: 89 e5 mov %esp,%ebp
10050b: 57 push %edi
10050c: 56 push %esi
10050d: 53 push %ebx
10050e: 83 ec 18 sub $0x18,%esp
100511: 8b 7d 08 mov 0x8(%ebp),%edi
int i; /* for our loops */
int previdx; /* previous index */
int idx; /* current index */
int j; /* loops */
i = 0;
j = 0;
previdx = 0;
pars->count = 0;
100514: 8b 45 0c mov 0xc(%ebp),%eax
100517: c7 00 00 00 00 00 movl $0x0,(%eax)
previdx = mapCommand(buf);
10051d: 57 push %edi
10051e: e8 11 ff ff ff call 100434 <mapCommand>
100523: 89 c2 mov %eax,%edx
100525: 31 f6 xor %esi,%esi
if(previdx == -1)
100527: 83 c4 10 add $0x10,%esp
10052a: 31 c0 xor %eax,%eax
10052c: 83 fa ff cmp $0xffffffff,%edx
10052f: 0f 84 0d 01 00 00 je 100642 <mapParams+0x13a>
return 0;
strcpy(pars->param[0], eshCommands[previdx].command);
100535: 8d 04 92 lea (%edx,%edx,4),%eax
100538: 8d 04 42 lea (%edx,%eax,2),%eax
10053b: c1 e0 07 shl $0x7,%eax
10053e: 01 d0 add %edx,%eax
100540: 83 ec 08 sub $0x8,%esp
100543: 8d 04 c5 48 3a 18 00 lea 0x183a48(,%eax,8),%eax
10054a: 50 push %eax
10054b: 8b 45 0c mov 0xc(%ebp),%eax
10054e: 83 c0 04 add $0x4,%eax
100551: 50 push %eax
100552: e8 e5 4b 00 00 call 10513c <strcpy>
j++;
pars->count++;
100557: 8b 55 0c mov 0xc(%ebp),%edx
10055a: ff 02 incl (%edx)
i = 0;
idx = 0;
for(i = 0; i < (int)strlen(buf); i++)
10055c: 83 c4 10 add $0x10,%esp
10055f: 81 c2 00 02 00 00 add $0x200,%edx
100565: c7 45 ec 01 00 00 00 movl $0x1,0xffffffec(%ebp)
10056c: 89 55 e8 mov %edx,0xffffffe8(%ebp)
10056f: 90 nop
100570: 83 ec 0c sub $0xc,%esp
100573: 57 push %edi
100574: e8 df 4b 00 00 call 105158 <strlen>
100579: 83 c4 10 add $0x10,%esp
10057c: 39 c6 cmp %eax,%esi
10057e: 0f 8d b9 00 00 00 jge 10063d <mapParams+0x135>
{
/* we have encountered a seperator */
if(buf[i] == ' ')
100584: 80 3c 3e 20 cmpb $0x20,(%esi,%edi,1)
100588: 74 06 je 100590 <mapParams+0x88>
10058a: 46 inc %esi
10058b: eb e3 jmp 100570 <mapParams+0x68>
10058d: 8d 76 00 lea 0x0(%esi),%esi
{
if(j > MAX_PARAMS)
100590: 83 7d ec 14 cmpl $0x14,0xffffffec(%ebp)
100594: 0f 8f a3 00 00 00 jg 10063d <mapParams+0x135>
break;
i++; /* skip one space */
10059a: 46 inc %esi
idx = i;
10059b: 89 75 f0 mov %esi,0xfffffff0(%ebp)
if(buf[i] == '"')
10059e: 8a 04 3e mov (%esi,%edi,1),%al
1005a1: 3c 22 cmp $0x22,%al
1005a3: 74 57 je 1005fc <mapParams+0xf4>
1005a5: 8d 76 00 lea 0x0(%esi),%esi
1005a8: 3c 20 cmp $0x20,%al
1005aa: 74 16 je 1005c2 <mapParams+0xba>
1005ac: 83 ec 0c sub $0xc,%esp
1005af: 57 push %edi
1005b0: e8 a3 4b 00 00 call 105158 <strlen>
1005b5: 83 c4 10 add $0x10,%esp
1005b8: 39 c6 cmp %eax,%esi
1005ba: 74 06 je 1005c2 <mapParams+0xba>
{
i++;
idx++;
while(buf[i] != '"' && i != (int)strlen(buf))
i++;
strncpy(pars->param[j], &buf[idx], (i - idx));
pars->param[j][i - idx] = '\0';
idx = i;
j++;
pars->count++;
}
else
{
while(buf[i] != ' ' && i != (int)strlen(buf))
i++;
1005bc: 46 inc %esi
1005bd: 8a 04 3e mov (%esi,%edi,1),%al
1005c0: eb e6 jmp 1005a8 <mapParams+0xa0>
strncpy(pars->param[j], &buf[idx], i - idx);
1005c2: 53 push %ebx
1005c3: 89 f3 mov %esi,%ebx
1005c5: 2b 5d f0 sub 0xfffffff0(%ebp),%ebx
1005c8: 8b 55 f0 mov 0xfffffff0(%ebp),%edx
1005cb: 53 push %ebx
1005cc: 8d 04 3a lea (%edx,%edi,1),%eax
1005cf: 50 push %eax
1005d0: 8b 45 e8 mov 0xffffffe8(%ebp),%eax
1005d3: 83 c0 04 add $0x4,%eax
1005d6: 50 push %eax
1005d7: e8 98 4b 00 00 call 105174 <strncpy>
pars->param[j][i - idx] = '\0';
1005dc: 8b 45 e8 mov 0xffffffe8(%ebp),%eax
1005df: c6 44 03 04 00 movb $0x0,0x4(%ebx,%eax,1)
i = idx;
1005e4: 8b 75 f0 mov 0xfffffff0(%ebp),%esi
j++;
1005e7: 05 00 02 00 00 add $0x200,%eax
pars->count++;
1005ec: 8b 55 0c mov 0xc(%ebp),%edx
1005ef: ff 45 ec incl 0xffffffec(%ebp)
1005f2: 89 45 e8 mov %eax,0xffffffe8(%ebp)
1005f5: ff 02 incl (%edx)
1005f7: 83 c4 10 add $0x10,%esp
1005fa: eb 8e jmp 10058a <mapParams+0x82>
1005fc: 46 inc %esi
1005fd: ff 45 f0 incl 0xfffffff0(%ebp)
100600: 80 3c 3e 22 cmpb $0x22,(%esi,%edi,1)
100604: 74 13 je 100619 <mapParams+0x111>
100606: 83 ec 0c sub $0xc,%esp
100609: 57 push %edi
10060a: e8 49 4b 00 00 call 105158 <strlen>
10060f: 83 c4 10 add $0x10,%esp
100612: 39 c6 cmp %eax,%esi
100614: 74 03 je 100619 <mapParams+0x111>
100616: 46 inc %esi
100617: eb e7 jmp 100600 <mapParams+0xf8>
100619: 89 f3 mov %esi,%ebx
10061b: 2b 5d f0 sub 0xfffffff0(%ebp),%ebx
10061e: 8b 55 f0 mov 0xfffffff0(%ebp),%edx
100621: 50 push %eax
100622: 53 push %ebx
100623: 8d 04 3a lea (%edx,%edi,1),%eax
100626: 50 push %eax
100627: 8b 45 e8 mov 0xffffffe8(%ebp),%eax
10062a: 83 c0 04 add $0x4,%eax
10062d: 50 push %eax
10062e: e8 41 4b 00 00 call 105174 <strncpy>
100633: 8b 45 e8 mov 0xffffffe8(%ebp),%eax
100636: c6 44 03 04 00 movb $0x0,0x4(%ebx,%eax,1)
10063b: eb aa jmp 1005e7 <mapParams+0xdf>
}
}
}
return pars->count;
10063d: 8b 55 0c mov 0xc(%ebp),%edx
100640: 8b 02 mov (%edx),%eax
}
100642: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
100645: 5b pop %ebx
100646: 5e pop %esi
100647: 5f pop %edi
100648: c9 leave
100649: c3 ret
10064a: 89 f6 mov %esi,%esi
0010064c <processCommand>:
/**
* processCommand()
*
* This function is called when the user has pressed
* the ENTER key.
*
* @param char * The contents of the current buffer or NULL if empty
* @param int Size of the buffer (number of characters)
*
* @return void
*/
void processCommand(char *line, int count)
{
10064c: 55 push %ebp
10064d: 89 e5 mov %esp,%ebp
10064f: 57 push %edi
100650: 56 push %esi
100651: 53 push %ebx
100652: 81 ec 1c 50 00 00 sub $0x501c,%esp
100658: 8b 75 08 mov 0x8(%ebp),%esi
int i;
int cmd; /* stores the numeric index of the command */
ESHCURRCOMMAND params;
count = count; /* to shut gcc up */
/*for(i = 0; i < MAX_PARAMS; i++)
params.param[i][0] = '\0';*/
params.param[0][0] = '\0';
10065b: c6 85 dc af ff ff 00 movb $0x0,0xffffafdc(%ebp)
initCommands();
100662: e8 f9 fb ff ff call 100260 <initCommands>
cmd = mapCommand(line);
100667: 83 ec 0c sub $0xc,%esp
10066a: 56 push %esi
10066b: e8 c4 fd ff ff call 100434 <mapCommand>
mapParams(line, ¶ms);
100670: 5f pop %edi
100671: 89 c3 mov %eax,%ebx
100673: 8d bd d8 af ff ff lea 0xffffafd8(%ebp),%edi
100679: 58 pop %eax
10067a: 57 push %edi
10067b: 56 push %esi
10067c: e8 87 fe ff ff call 100508 <mapParams>
switch(cmd)
100681: 83 c4 10 add $0x10,%esp
100684: 83 fb 01 cmp $0x1,%ebx
100687: 0f 84 13 01 00 00 je 1007a0 <processCommand+0x154>
10068d: 83 fb 01 cmp $0x1,%ebx
100690: 0f 8e f6 00 00 00 jle 10078c <processCommand+0x140>
100696: 83 fb 02 cmp $0x2,%ebx
100699: 74 4a je 1006e5 <processCommand+0x99>
{
case 0: /* dumpheap */
dumpheapk();
//testheap();
break;
case 1: /* echo */
for(i = 1; i < params.count; i++)
printf("%s", params.param[i]);
printf("\n");
break;
case 2: /* help */
if(params.count == 1)
{
printf("HybOS EShell Commands:\n");
for(i = 0; i < COMMAND_COUNT; i++)
if(strlen(eshCommands[i].command) > 0)
printf("%10s %-s\n", eshCommands[i].command, eshCommands[i].description);
}
else
{
cmd = mapCommand(params.param[0]);
mapParams(params.param[1], ¶ms);
//if(isParam(cmd, params.param[1]))
if(cmd != -1)
{
printf("Usage: %s %s\n", params.param[0], eshCommands[cmd].params[1]);
}
else
printf("esh: '%s' not found.\n", params.param[1]);
}
break;
default:
if(strlen(params.param[0]) > 0 && strcmp(params.param[0], "help"))
10069b: 83 ec 0c sub $0xc,%esp
10069e: 8d 9d dc af ff ff lea 0xffffafdc(%ebp),%ebx
1006a4: 53 push %ebx
1006a5: e8 ae 4a 00 00 call 105158 <strlen>
1006aa: 83 c4 10 add $0x10,%esp
1006ad: 85 c0 test %eax,%eax
1006af: 74 15 je 1006c6 <processCommand+0x7a>
1006b1: 83 ec 08 sub $0x8,%esp
1006b4: 68 87 54 10 00 push $0x105487
1006b9: 53 push %ebx
1006ba: e8 31 4a 00 00 call 1050f0 <strcmp>
1006bf: 83 c4 10 add $0x10,%esp
1006c2: 85 c0 test %eax,%eax
1006c4: 75 19 jne 1006df <processCommand+0x93>
printf("esh: '%s' not found.\n", params.param[0]);
else
printf("esh: '%s' not found.\n", &line[0]);
1006c6: 83 ec 08 sub $0x8,%esp
1006c9: 56 push %esi
1006ca: 68 8c 54 10 00 push $0x10548c
1006cf: e8 00 4a 00 00 call 1050d4 <printf>
1006d4: 83 c4 10 add $0x10,%esp
break;
}
/*for(i = 0; i < params.count; i++)
printf("param[%i]: %s\n", i, params.param[i]);*/
//if(isParam(3, ¶ms.param[1]))
// printf("valid parameter\n");
//else
// printf("invalid parameter\n");
return;
if(!strcmp(line, "dumpheap"))
dumpheapk();
else if(!strncmp(line, "echo", 4))
printf("%s\n", line[4] == ' ' ? &line[5] : &line[4]);
else if(!strcmp(line, "help"))
{
printf("HybOS EShell Commands:\n");
printf("dumpheap\tPrint listing of heap usage and status\n");
printf("testheap\tTest the heap and print out results\n");
printf("shutdown -r\tRestart the system.\n");
printf("pwd\t\tPrint the current working directory.\n");
}
else if(!strncmp(line, "shutdown", 8))
{
if(strlen(line) > 9 && !strncmp(&line[9], "-r", 2))
{
printf("\nSystem shutdown from vtty%u\n", get_current_vc());
printf("Restarting...");
//reboot();
}
else
{
if((strlen(line) > 9) && (strlen(&line[9]) > 0))
printf("shutdown: Invalid argument \"%s\".\n", &line[9]);
else
printf("Usage: shutdown -r\n");
}
}
else if((strlen(line) > 0) && (!strcmp(line, "cls")))
{
printf("\x1B[2J");
}
else if((strlen(line) >= 8) && (!strcmp(line, "testheap")))
{
//testheap();
}
else if((strlen(line) > 0) && (!strcmp(line, "pwd")))
printf("/\n");
else if(strlen(line) > 0)
printf("eshell: \"%s\" not found.\n", line);
}
1006d7: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
1006da: 5b pop %ebx
1006db: 5e pop %esi
1006dc: 5f pop %edi
1006dd: c9 leave
1006de: c3 ret
1006df: 83 ec 08 sub $0x8,%esp
1006e2: 53 push %ebx
1006e3: eb e5 jmp 1006ca <processCommand+0x7e>
1006e5: 83 bd d8 af ff ff 01 cmpl $0x1,0xffffafd8(%ebp)
1006ec: 74 4a je 100738 <processCommand+0xec>
1006ee: 83 ec 0c sub $0xc,%esp
1006f1: 8d 85 dc af ff ff lea 0xffffafdc(%ebp),%eax
1006f7: 50 push %eax
1006f8: e8 37 fd ff ff call 100434 <mapCommand>
1006fd: 89 c3 mov %eax,%ebx
1006ff: 58 pop %eax
100700: 5a pop %edx
100701: 57 push %edi
100702: 8d b5 dc b1 ff ff lea 0xffffb1dc(%ebp),%esi
100708: 56 push %esi
100709: e8 fa fd ff ff call 100508 <mapParams>
10070e: 83 c4 10 add $0x10,%esp
100711: 83 fb ff cmp $0xffffffff,%ebx
100714: 74 b0 je 1006c6 <processCommand+0x7a>
100716: 50 push %eax
100717: 8d 04 9b lea (%ebx,%ebx,4),%eax
10071a: 8d 04 43 lea (%ebx,%eax,2),%eax
10071d: c1 e0 07 shl $0x7,%eax
100720: 01 d8 add %ebx,%eax
100722: 8d 04 c5 48 3e 18 00 lea 0x183e48(,%eax,8),%eax
100729: 50 push %eax
10072a: 8d 85 dc af ff ff lea 0xffffafdc(%ebp),%eax
100730: 50 push %eax
100731: 68 a2 54 10 00 push $0x1054a2
100736: eb 97 jmp 1006cf <processCommand+0x83>
100738: 83 ec 0c sub $0xc,%esp
10073b: 68 b0 54 10 00 push $0x1054b0
100740: e8 8f 49 00 00 call 1050d4 <printf>
100745: 31 ff xor %edi,%edi
100747: 83 c4 10 add $0x10,%esp
10074a: be 05 00 00 00 mov $0x5,%esi
10074f: 90 nop
100750: 83 ec 0c sub $0xc,%esp
100753: 8d 9f 48 3a 18 00 lea 0x183a48(%edi),%ebx
100759: 53 push %ebx
10075a: e8 f9 49 00 00 call 105158 <strlen>
10075f: 83 c4 10 add $0x10,%esp
100762: 85 c0 test %eax,%eax
100764: 75 0e jne 100774 <processCommand+0x128>
100766: 81 c7 08 2c 00 00 add $0x2c08,%edi
10076c: 4e dec %esi
10076d: 79 e1 jns 100750 <processCommand+0x104>
10076f: e9 63 ff ff ff jmp 1006d7 <processCommand+0x8b>
100774: 8d 87 48 64 18 00 lea 0x186448(%edi),%eax
10077a: 51 push %ecx
10077b: 50 push %eax
10077c: 53 push %ebx
10077d: 68 c8 54 10 00 push $0x1054c8
100782: e8 4d 49 00 00 call 1050d4 <printf>
100787: 83 c4 10 add $0x10,%esp
10078a: eb da jmp 100766 <processCommand+0x11a>
10078c: 85 db test %ebx,%ebx
10078e: 0f 85 07 ff ff ff jne 10069b <processCommand+0x4f>
100794: e8 83 38 00 00 call 10401c <dumpheapk>
100799: e9 39 ff ff ff jmp 1006d7 <processCommand+0x8b>
10079e: 89 f6 mov %esi,%esi
1007a0: 3b 9d d8 af ff ff cmp 0xffffafd8(%ebp),%ebx
1007a6: be 01 00 00 00 mov $0x1,%esi
1007ab: 7d 27 jge 1007d4 <processCommand+0x188>
1007ad: 8d 9d dc b1 ff ff lea 0xffffb1dc(%ebp),%ebx
1007b3: 90 nop
1007b4: 83 ec 08 sub $0x8,%esp
1007b7: 53 push %ebx
1007b8: 68 bd 51 10 00 push $0x1051bd
1007bd: 46 inc %esi
1007be: e8 11 49 00 00 call 1050d4 <printf>
1007c3: 81 c3 00 02 00 00 add $0x200,%ebx
1007c9: 83 c4 10 add $0x10,%esp
1007cc: 3b b5 d8 af ff ff cmp 0xffffafd8(%ebp),%esi
1007d2: 7c e0 jl 1007b4 <processCommand+0x168>
1007d4: 83 ec 0c sub $0xc,%esp
1007d7: 68 f8 5a 10 00 push $0x105af8
1007dc: e9 ee fe ff ff jmp 1006cf <processCommand+0x83>
1007e1: 00 00 add %al,(%eax)
...
001007e4 <reboot>:
* reboot()
*
*/
static void reboot(void)
{
1007e4: 55 push %ebp
1007e5: 89 e5 mov %esp,%ebp
1007e7: 53 push %ebx
1007e8: 50 push %eax
unsigned temp;
disable();
1007e9: e8 da 44 00 00 call 104cc8 <disable>
/**
* flush the keyboard controller
*/
do
{
temp = inportb(0x64);
1007ee: 83 ec 0c sub $0xc,%esp
1007f1: 6a 64 push $0x64
1007f3: e8 1c 48 00 00 call 105014 <inportb>
if((temp & 0x01) != 0)
1007f8: 83 c4 10 add $0x10,%esp
1007fb: a8 01 test $0x1,%al
1007fd: 89 c3 mov %eax,%ebx
1007ff: 75 19 jne 10081a <reboot+0x36>
{
(void)inportb(0x60);
continue;
}
} while((temp & 0x02) != 0);
100801: 83 e3 02 and $0x2,%ebx
100804: 75 e8 jne 1007ee <reboot+0xa>
/**
* now pulse the cpu reset line
*/
outportb(0x64, 0xFE);
100806: 83 ec 08 sub $0x8,%esp
100809: 68 fe 00 00 00 push $0xfe
10080e: 6a 64 push $0x64
100810: e8 9f 48 00 00 call 1050b4 <outportb>
/**
* if that didn't work, just halt
*/
while(1);
100815: 83 c4 10 add $0x10,%esp
100818: eb fe jmp 100818 <reboot+0x34>
10081a: 83 ec 0c sub $0xc,%esp
10081d: 6a 60 push $0x60
10081f: e8 f0 47 00 00 call 105014 <inportb>
100824: 83 c4 10 add $0x10,%esp
100827: eb d8 jmp 100801 <reboot+0x1d>
100829: 8d 76 00 lea 0x0(%esi),%esi
0010082c <_write_kb>:
}
/**
* XXX
*
* I'm not even sure if we need the following functions yet,
* however they are here just in case. Leave them alone.
*/
/**
* _write_kb()
*
*/
static void _write_kb(unsigned adr, unsigned d)
{
10082c: 55 push %ebp
10082d: 89 e5 mov %esp,%ebp
10082f: 57 push %edi
100830: 56 push %esi
100831: 53 push %ebx
100832: 83 ec 0c sub $0xc,%esp
100835: 8b 7d 08 mov 0x8(%ebp),%edi
100838: 8b 75 0c mov 0xc(%ebp),%esi
unsigned long t;
unsigned s;
for(t = 5000000L; t != 0; t--)
10083b: bb 40 4b 4c 00 mov $0x4c4b40,%ebx
{
s = inportb(0x64);
100840: 83 ec 0c sub $0xc,%esp
100843: 6a 64 push $0x64
100845: e8 ca 47 00 00 call 105014 <inportb>
/**
* loop until 8042 input buffer is empty
*/
if((s & 0x02) == 0)
10084a: 83 c4 10 add $0x10,%esp
10084d: a8 02 test $0x2,%al
10084f: 74 0b je 10085c <_write_kb+0x30>
100851: 4b dec %ebx
100852: 75 ec jne 100840 <_write_kb+0x14>
break;
}
if(t != 0)
outportb(adr, d);
}
100854: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
100857: 5b pop %ebx
100858: 5e pop %esi
100859: 5f pop %edi
10085a: c9 leave
10085b: c3 ret
10085c: 85 db test %ebx,%ebx
10085e: 74 f4 je 100854 <_write_kb+0x28>
100860: 89 75 0c mov %esi,0xc(%ebp)
100863: 89 7d 08 mov %edi,0x8(%ebp)
100866: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
100869: 5b pop %ebx
10086a: 5e pop %esi
10086b: 5f pop %edi
10086c: c9 leave
10086d: e9 42 48 00 00 jmp 1050b4 <outportb>
100872: 89 f6 mov %esi,%esi
00100874 <_translate_sc>:
/**
* _kb_wait()
*
*/
static inline void _kb_wait(void)
{
int i;
for(i = 0; i < 0x1000000; i++)
if((inportb(0x64) & 0x02) == 0)
return;
printk(0, "Keyboard timeout\n");
}
/**
* _kb_send()
*
*/
static inline void _kb_send(unsigned char c)
{
_kb_wait();
outportb(c, 0x64);
}
/**
* _translate_sc()
*
* Translates a scancode from the keyboard
*/
unsigned _translate_sc(unsigned k)
{
100874: 55 push %ebp
100875: 89 e5 mov %esp,%ebp
100877: 83 ec 08 sub $0x8,%esp
10087a: 8b 45 08 mov 0x8(%ebp),%eax
unsigned c;
static unsigned altk;
unsigned donefirst = 0;
if(k == KEY_BKSPACE)
10087d: 83 f8 0e cmp $0xe,%eax
100880: 0f 84 f2 09 00 00 je 101278 <_translate_sc+0xa04>
{
if(numkeysbuffer - 1 < 0)
{
numkeysbuffer = 0;
return 0;
}
}
switch(k)
100886: 3d e0 00 00 00 cmp $0xe0,%eax
10088b: 0f 87 d3 09 00 00 ja 101264 <_translate_sc+0x9f0>
100891: ff 24 85 dc 54 10 00 jmp *0x1054dc(,%eax,4)
{
case 0xE0:
altk = 1; c = 0; donefirst = 1; break;
100898: 31 d2 xor %edx,%edx
10089a: c7 05 00 80 10 00 01 movl $0x1,0x108000
1008a1: 00 00 00
case KEY_TILDA: /* ` or ~ */
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 126 : 126; break;
case KEY_END: c = 0; if(keys[KEYP_NUMLCK] && altk == 0) c = 49; break;
case KEY_1:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 33 : 49; break;
case KEY_DOWN: c = 0; if(keys[KEYP_NUMLCK] && altk == 0) c = 50; break;
case KEY_2:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 64 : 50; break;
case KEY_PGDOWN: c = 0; if(keys[KEYP_NUMLCK] && altk == 0) c = 51; break;
case KEY_3:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 35 : 51; break;
case KEY_LEFT: c = 0; if(keys[KEYP_NUMLCK] && altk == 0) c = 52; break;
case KEY_4:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 36 : 52; break;
case KEYP_5: c = 0; if(keys[KEYP_NUMLCK] && altk == 0) c = 53; break;
case KEY_5:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 35 : 53; break;
case KEY_RIGHT: c = 0; if(keys[KEYP_NUMLCK] && altk == 0) c = 54; break;
case KEY_6:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 94 : 54; break;
case KEY_HOME: c = 0; if(keys[KEYP_NUMLCK] && altk == 0) c = 55; break;
case KEY_7:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 38 : 55; break;
case KEY_UP: c = 0; if(keys[KEYP_NUMLCK] && altk == 0) c = 56; break;
case KEYP_ASTERISK: c = 42; break;
case KEY_8:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 42 : 56; break;
case KEY_PGUP: c = 0; if(keys[KEYP_NUMLCK] && altk == 0) c = 57; break;
case KEY_9:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 40 : 57; break;
case KEY_INSERT: c = 0; if(keys[KEYP_NUMLCK] && altk == 0) c = 48; break;
case KEY_0:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 41 : 48; break;
case KEYP_MINUS: c = 45; break;
case KEY_MINUS:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 95 : 45; break;
case KEYP_PLUS: c = 43; break;
case KEY_PLUS:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 61 : 43; break;
case KEY_BKSLASH:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 124 : 92; break;
case KEY_Q:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 81 : 113; break;
case KEY_W:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 87 : 119; break;
case KEY_E:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 69 : 101; break;
case KEY_R:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 82 : 114; break;
case KEY_T:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 84 : 116; break;
case KEY_Y:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 89 : 121; break;
case KEY_U:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 85 : 117; break;
case KEY_I:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 73 : 105; break;
case KEY_O:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 79 : 111; break;
case KEY_P:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 80 : 112; break;
case KEY_LBRACKET:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 123 : 91; break;
case KEY_RBRACKET:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 125 : 93; break;
case KEY_ENTER:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 10 : 10; break;
case KEY_A:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 65 : 97; break;
case KEY_S:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 83 : 115; break;
case KEY_D:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 68 : 100; break;
case KEY_F:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 70 : 102; break;
case KEY_G:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 71 : 103; break;
case KEY_H:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 72 : 104; break;
case KEY_J:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 74 : 106; break;
case KEY_K:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 75 : 107; break;
case KEY_L:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 76 : 108; break;
case KEY_SEMICOLON:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 58 : 59; break;
case KEY_QUOTE:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 34 : 39; break;
case KEY_Z:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 90 : 122; break;
case KEY_X:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 88 : 120; break;
case KEY_C:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 67 : 99; break;
case KEY_V:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 86 : 118; break;
case KEY_B:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 66 : 98; break;
case KEY_N:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 78 : 110; break;
case KEY_M:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 77 : 109; break;
case KEY_COMMA:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 60 : 44; break;
case KEY_DEL: c = 0; if(keys[KEYP_NUMLCK] && altk == 0) c = 46; break;
case KEY_PERIOD:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 62 : 46; break;
case KEY_SLASH:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 63 : 47; break;
case KEY_SPACE:
c = (keys[KEY_LSHIFT] || keys[KEY_RSHIFT]) ? 32 : 32; break;
case KEY_BKSPACE: c = '\b'; break; /* just for now */
default:
c = 0;
}
if(donefirst == 0)
altk = 0;
if(keys[KEY_CAPS])
1008a4: a1 28 84 10 00 mov 0x108428,%eax
1008a9: 85 c0 test %eax,%eax
1008ab: 74 23 je 1008d0 <_translate_sc+0x5c>
{
if(keys[KEY_LSHIFT] || keys[KEY_RSHIFT])
1008ad: a1 e8 83 10 00 mov 0x1083e8,%eax
1008b2: 85 c0 test %eax,%eax
1008b4: 75 0d jne 1008c3 <_translate_sc+0x4f>
1008b6: a1 18 84 10 00 mov 0x108418,%eax
1008bb: 85 c0 test %eax,%eax
1008bd: 0f 84 bd 00 00 00 je 100980 <_translate_sc+0x10c>
{
if(c >= 'A' && c <= 'Z')
1008c3: 8d 42 bf lea 0xffffffbf(%edx),%eax
1008c6: 83 f8 19 cmp $0x19,%eax
1008c9: 77 05 ja 1008d0 <_translate_sc+0x5c>
c += 32;
1008cb: 83 c2 20 add $0x20,%edx
1008ce: 89 f6 mov %esi,%esi
}
else
{
if(c >= 'a' && c <= 'z')
c -= 32;
}
}
/**
* Simple shell for now
*/
if(c != 0 && c != '\n' && c != '\b')
1008d0: 85 d2 test %edx,%edx
1008d2: 74 38 je 10090c <_translate_sc+0x98>
1008d4: 83 fa 0a cmp $0xa,%edx
1008d7: 74 63 je 10093c <_translate_sc+0xc8>
1008d9: 83 fa 08 cmp $0x8,%edx
1008dc: 74 2e je 10090c <_translate_sc+0x98>
{
if((numkeysbuffer - 1) == KBD_BUF_SIZE)
1008de: a1 40 85 10 00 mov 0x108540,%eax
1008e3: 83 f8 41 cmp $0x41,%eax
1008e6: 74 10 je 1008f8 <_translate_sc+0x84>
{
numkeysbuffer = 0;
szInBuf[0] = '\0';
szInBuf[numkeysbuffer] = c;
numkeysbuffer++;
}
else
{
szInBuf[numkeysbuffer] = c;
1008e8: 88 90 60 85 10 00 mov %dl,0x108560(%eax)
numkeysbuffer++;
1008ee: 40 inc %eax
1008ef: a3 40 85 10 00 mov %eax,0x108540
}
}
else if(c == '\n')
{
printf("\n");
/**
* Make it a real string
*/
szInBuf[numkeysbuffer] = '\0';
/**
* Process command
*/
processCommand(&szInBuf[0], numkeysbuffer - 1);
/**
* Clear buffer
*/
numkeysbuffer = 0;
szInBuf[0] = '\0';
/**
* Print "line"
*/
printf("$ ");
c = 0;
}
else if(c == '\b')
{
szInBuf[numkeysbuffer] = '\0';
numkeysbuffer--;
printf("\b \b");
c = 0;
}
return c;
1008f4: 89 d0 mov %edx,%eax
}
1008f6: c9 leave
1008f7: c3 ret
1008f8: 88 15 60 85 10 00 mov %dl,0x108560
1008fe: c7 05 40 85 10 00 01 movl $0x1,0x108540
100905: 00 00 00
100908: eb ea jmp 1008f4 <_translate_sc+0x80>
10090a: 89 f6 mov %esi,%esi
10090c: 83 fa 0a cmp $0xa,%edx
10090f: 74 2b je 10093c <_translate_sc+0xc8>
100911: 83 fa 08 cmp $0x8,%edx
100914: 75 de jne 1008f4 <_translate_sc+0x80>
100916: a1 40 85 10 00 mov 0x108540,%eax
10091b: c6 80 60 85 10 00 00 movb $0x0,0x108560(%eax)
100922: 83 ec 0c sub $0xc,%esp
100925: 48 dec %eax
100926: a3 40 85 10 00 mov %eax,0x108540
10092b: 68 d2 54 10 00 push $0x1054d2
100930: e8 9f 47 00 00 call 1050d4 <printf>
100935: 31 d2 xor %edx,%edx
100937: 83 c4 10 add $0x10,%esp
10093a: eb b8 jmp 1008f4 <_translate_sc+0x80>
10093c: 83 ec 0c sub $0xc,%esp
10093f: 68 f8 5a 10 00 push $0x105af8
100944: e8 8b 47 00 00 call 1050d4 <printf>
100949: a1 40 85 10 00 mov 0x108540,%eax
10094e: 5a pop %edx
10094f: 59 pop %ecx
100950: c6 80 60 85 10 00 00 movb $0x0,0x108560(%eax)
100957: 48 dec %eax
100958: 50 push %eax
100959: 68 60 85 10 00 push $0x108560
10095e: e8 e9 fc ff ff call 10064c <processCommand>
100963: c7 05 40 85 10 00 00 movl $0x0,0x108540
10096a: 00 00 00
10096d: c6 05 60 85 10 00 00 movb $0x0,0x108560
100974: c7 04 24 d6 54 10 00 movl $0x1054d6,(%esp,1)
10097b: eb b3 jmp 100930 <_translate_sc+0xbc>
10097d: 8d 76 00 lea 0x0(%esi),%esi
100980: 8d 42 9f lea 0xffffff9f(%edx),%eax
100983: 83 f8 19 cmp $0x19,%eax
100986: 0f 87 44 ff ff ff ja 1008d0 <_translate_sc+0x5c>
10098c: 83 ea 20 sub $0x20,%edx
10098f: e9 3c ff ff ff jmp 1008d0 <_translate_sc+0x5c>
100994: a1 e8 83 10 00 mov 0x1083e8,%eax
100999: 85 c0 test %eax,%eax
10099b: 75 09 jne 1009a6 <_translate_sc+0x132>
10099d: a1 18 84 10 00 mov 0x108418,%eax
1009a2: 85 c0 test %eax,%eax
1009a4: 74 15 je 1009bb <_translate_sc+0x147>
1009a6: ba 21 00 00 00 mov $0x21,%edx
1009ab: 90 nop
1009ac: c7 05 00 80 10 00 00 movl $0x0,0x108000
1009b3: 00 00 00
1009b6: e9 e9 fe ff ff jmp 1008a4 <_translate_sc+0x30>
1009bb: ba 31 00 00 00 mov $0x31,%edx
1009c0: eb ea jmp 1009ac <_translate_sc+0x138>
1009c2: 8b 15 e8 83 10 00 mov 0x1083e8,%edx
1009c8: 85 d2 test %edx,%edx
1009ca: 75 09 jne 1009d5 <_translate_sc+0x161>
1009cc: a1 18 84 10 00 mov 0x108418,%eax
1009d1: 85 c0 test %eax,%eax
1009d3: 74 07 je 1009dc <_translate_sc+0x168>
1009d5: ba 40 00 00 00 mov $0x40,%edx
1009da: eb d0 jmp 1009ac <_translate_sc+0x138>
1009dc: ba 32 00 00 00 mov $0x32,%edx
1009e1: eb c9 jmp 1009ac <_translate_sc+0x138>
1009e3: a1 e8 83 10 00 mov 0x1083e8,%eax
1009e8: 85 c0 test %eax,%eax
1009ea: 75 09 jne 1009f5 <_translate_sc+0x181>
1009ec: a1 18 84 10 00 mov 0x108418,%eax
1009f1: 85 c0 test %eax,%eax
1009f3: 74 07 je 1009fc <_translate_sc+0x188>
1009f5: ba 23 00 00 00 mov $0x23,%edx
1009fa: eb b0 jmp 1009ac <_translate_sc+0x138>
1009fc: ba 33 00 00 00 mov $0x33,%edx
100a01: eb a9 jmp 1009ac <_translate_sc+0x138>
100a03: 8b 15 e8 83 10 00 mov 0x1083e8,%edx
100a09: 85 d2 test %edx,%edx
100a0b: 75 09 jne 100a16 <_translate_sc+0x1a2>
100a0d: a1 18 84 10 00 mov 0x108418,%eax
100a12: 85 c0 test %eax,%eax
100a14: 74 07 je 100a1d <_translate_sc+0x1a9>
100a16: ba 24 00 00 00 mov $0x24,%edx
100a1b: eb 8f jmp 1009ac <_translate_sc+0x138>
100a1d: ba 34 00 00 00 mov $0x34,%edx
100a22: eb 88 jmp 1009ac <_translate_sc+0x138>
100a24: a1 e8 83 10 00 mov 0x1083e8,%eax
100a29: 85 c0 test %eax,%eax
100a2b: 75 09 jne 100a36 <_translate_sc+0x1c2>
100a2d: a1 18 84 10 00 mov 0x108418,%eax
100a32: 85 c0 test %eax,%eax
100a34: 74 0a je 100a40 <_translate_sc+0x1cc>
100a36: ba 23 00 00 00 mov $0x23,%edx
100a3b: e9 6c ff ff ff jmp 1009ac <_translate_sc+0x138>
100a40: ba 35 00 00 00 mov $0x35,%edx
100a45: e9 62 ff ff ff jmp 1009ac <_translate_sc+0x138>
100a4a: 8b 15 e8 83 10 00 mov 0x1083e8,%edx
100a50: 85 d2 test %edx,%edx
100a52: 75 09 jne 100a5d <_translate_sc+0x1e9>
100a54: a1 18 84 10 00 mov 0x108418,%eax
100a59: 85 c0 test %eax,%eax
100a5b: 74 0a je 100a67 <_translate_sc+0x1f3>
100a5d: ba 5e 00 00 00 mov $0x5e,%edx
100a62: e9 45 ff ff ff jmp 1009ac <_translate_sc+0x138>
100a67: ba 36 00 00 00 mov $0x36,%edx
100a6c: e9 3b ff ff ff jmp 1009ac <_translate_sc+0x138>
100a71: a1 e8 83 10 00 mov 0x1083e8,%eax
100a76: 85 c0 test %eax,%eax
100a78: 75 09 jne 100a83 <_translate_sc+0x20f>
100a7a: a1 18 84 10 00 mov 0x108418,%eax
100a7f: 85 c0 test %eax,%eax
100a81: 74 0a je 100a8d <_translate_sc+0x219>
100a83: ba 26 00 00 00 mov $0x26,%edx
100a88: e9 1f ff ff ff jmp 1009ac <_translate_sc+0x138>
100a8d: ba 37 00 00 00 mov $0x37,%edx
100a92: e9 15 ff ff ff jmp 1009ac <_translate_sc+0x138>
100a97: 8b 15 e8 83 10 00 mov 0x1083e8,%edx
100a9d: 85 d2 test %edx,%edx
100a9f: 75 09 jne 100aaa <_translate_sc+0x236>
100aa1: a1 18 84 10 00 mov 0x108418,%eax
100aa6: 85 c0 test %eax,%eax
100aa8: 74 0a je 100ab4 <_translate_sc+0x240>
100aaa: ba 2a 00 00 00 mov $0x2a,%edx
100aaf: e9 f8 fe ff ff jmp 1009ac <_translate_sc+0x138>
100ab4: ba 38 00 00 00 mov $0x38,%edx
100ab9: e9 ee fe ff ff jmp 1009ac <_translate_sc+0x138>
100abe: a1 e8 83 10 00 mov 0x1083e8,%eax
100ac3: 85 c0 test %eax,%eax
100ac5: 75 09 jne 100ad0 <_translate_sc+0x25c>
100ac7: a1 18 84 10 00 mov 0x108418,%eax
100acc: 85 c0 test %eax,%eax
100ace: 74 0a je 100ada <_translate_sc+0x266>
100ad0: ba 28 00 00 00 mov $0x28,%edx
100ad5: e9 d2 fe ff ff jmp 1009ac <_translate_sc+0x138>
100ada: ba 39 00 00 00 mov $0x39,%edx
100adf: e9 c8 fe ff ff jmp 1009ac <_translate_sc+0x138>
100ae4: 8b 15 e8 83 10 00 mov 0x1083e8,%edx
100aea: 85 d2 test %edx,%edx
100aec: 75 09 jne 100af7 <_translate_sc+0x283>
100aee: a1 18 84 10 00 mov 0x108418,%eax
100af3: 85 c0 test %eax,%eax
100af5: 74 0a je 100b01 <_translate_sc+0x28d>
100af7: ba 29 00 00 00 mov $0x29,%edx
100afc: e9 ab fe ff ff jmp 1009ac <_translate_sc+0x138>
100b01: ba 30 00 00 00 mov $0x30,%edx
100b06: e9 a1 fe ff ff jmp 1009ac <_translate_sc+0x138>
100b0b: a1 e8 83 10 00 mov 0x1083e8,%eax
100b10: 85 c0 test %eax,%eax
100b12: 75 09 jne 100b1d <_translate_sc+0x2a9>
100b14: a1 18 84 10 00 mov 0x108418,%eax
100b19: 85 c0 test %eax,%eax
100b1b: 74 0a je 100b27 <_translate_sc+0x2b3>
100b1d: ba 5f 00 00 00 mov $0x5f,%edx
100b22: e9 85 fe ff ff jmp 1009ac <_translate_sc+0x138>
100b27: ba 2d 00 00 00 mov $0x2d,%edx
100b2c: e9 7b fe ff ff jmp 1009ac <_translate_sc+0x138>
100b31: a1 e8 83 10 00 mov 0x1083e8,%eax
100b36: 85 c0 test %eax,%eax
100b38: 75 09 jne 100b43 <_translate_sc+0x2cf>
100b3a: a1 18 84 10 00 mov 0x108418,%eax
100b3f: 85 c0 test %eax,%eax
100b41: 74 0a je 100b4d <_translate_sc+0x2d9>
100b43: ba 3d 00 00 00 mov $0x3d,%edx
100b48: e9 5f fe ff ff jmp 1009ac <_translate_sc+0x138>
100b4d: ba 2b 00 00 00 mov $0x2b,%edx
100b52: e9 55 fe ff ff jmp 1009ac <_translate_sc+0x138>
100b57: ba 08 00 00 00 mov $0x8,%edx
100b5c: e9 4b fe ff ff jmp 1009ac <_translate_sc+0x138>
100b61: 8b 15 e8 83 10 00 mov 0x1083e8,%edx
100b67: 85 d2 test %edx,%edx
100b69: 75 09 jne 100b74 <_translate_sc+0x300>
100b6b: a1 18 84 10 00 mov 0x108418,%eax
100b70: 85 c0 test %eax,%eax
100b72: 74 0a je 100b7e <_translate_sc+0x30a>
100b74: ba 51 00 00 00 mov $0x51,%edx
100b79: e9 2e fe ff ff jmp 1009ac <_translate_sc+0x138>
100b7e: ba 71 00 00 00 mov $0x71,%edx
100b83: e9 24 fe ff ff jmp 1009ac <_translate_sc+0x138>
100b88: a1 e8 83 10 00 mov 0x1083e8,%eax
100b8d: 85 c0 test %eax,%eax
100b8f: 75 09 jne 100b9a <_translate_sc+0x326>
100b91: a1 18 84 10 00 mov 0x108418,%eax
100b96: 85 c0 test %eax,%eax
100b98: 74 0a je 100ba4 <_translate_sc+0x330>
100b9a: ba 57 00 00 00 mov $0x57,%edx
100b9f: e9 08 fe ff ff jmp 1009ac <_translate_sc+0x138>
100ba4: ba 77 00 00 00 mov $0x77,%edx
100ba9: e9 fe fd ff ff jmp 1009ac <_translate_sc+0x138>
100bae: a1 e8 83 10 00 mov 0x1083e8,%eax
100bb3: 85 c0 test %eax,%eax
100bb5: 75 09 jne 100bc0 <_translate_sc+0x34c>
100bb7: a1 18 84 10 00 mov 0x108418,%eax
100bbc: 85 c0 test %eax,%eax
100bbe: 74 0a je 100bca <_translate_sc+0x356>
100bc0: ba 45 00 00 00 mov $0x45,%edx
100bc5: e9 e2 fd ff ff jmp 1009ac <_translate_sc+0x138>
100bca: ba 65 00 00 00 mov $0x65,%edx
100bcf: e9 d8 fd ff ff jmp 1009ac <_translate_sc+0x138>
100bd4: a1 e8 83 10 00 mov 0x1083e8,%eax
100bd9: 85 c0 test %eax,%eax
100bdb: 75 0a jne 100be7 <_translate_sc+0x373>
100bdd: 8b 0d 18 84 10 00 mov 0x108418,%ecx
100be3: 85 c9 test %ecx,%ecx
100be5: 74 0a je 100bf1 <_translate_sc+0x37d>
100be7: ba 52 00 00 00 mov $0x52,%edx
100bec: e9 bb fd ff ff jmp 1009ac <_translate_sc+0x138>
100bf1: ba 72 00 00 00 mov $0x72,%edx
100bf6: e9 b1 fd ff ff jmp 1009ac <_translate_sc+0x138>
100bfb: 8b 15 e8 83 10 00 mov 0x1083e8,%edx
100c01: 85 d2 test %edx,%edx
100c03: 75 09 jne 100c0e <_translate_sc+0x39a>
100c05: a1 18 84 10 00 mov 0x108418,%eax
100c0a: 85 c0 test %eax,%eax
100c0c: 74 0a je 100c18 <_translate_sc+0x3a4>
100c0e: ba 54 00 00 00 mov $0x54,%edx
100c13: e9 94 fd ff ff jmp 1009ac <_translate_sc+0x138>
100c18: ba 74 00 00 00 mov $0x74,%edx
100c1d: e9 8a fd ff ff jmp 1009ac <_translate_sc+0x138>
100c22: a1 e8 83 10 00 mov 0x1083e8,%eax
100c27: 85 c0 test %eax,%eax
100c29: 75 09 jne 100c34 <_translate_sc+0x3c0>
100c2b: a1 18 84 10 00 mov 0x108418,%eax
100c30: 85 c0 test %eax,%eax
100c32: 74 0a je 100c3e <_translate_sc+0x3ca>
100c34: ba 59 00 00 00 mov $0x59,%edx
100c39: e9 6e fd ff ff jmp 1009ac <_translate_sc+0x138>
100c3e: ba 79 00 00 00 mov $0x79,%edx
100c43: e9 64 fd ff ff jmp 1009ac <_translate_sc+0x138>
100c48: a1 e8 83 10 00 mov 0x1083e8,%eax
100c4d: 85 c0 test %eax,%eax
100c4f: 75 09 jne 100c5a <_translate_sc+0x3e6>
100c51: a1 18 84 10 00 mov 0x108418,%eax
100c56: 85 c0 test %eax,%eax
100c58: 74 0a je 100c64 <_translate_sc+0x3f0>
100c5a: ba 55 00 00 00 mov $0x55,%edx
100c5f: e9 48 fd ff ff jmp 1009ac <_translate_sc+0x138>
100c64: ba 75 00 00 00 mov $0x75,%edx
100c69: e9 3e fd ff ff jmp 1009ac <_translate_sc+0x138>
100c6e: a1 e8 83 10 00 mov 0x1083e8,%eax
100c73: 85 c0 test %eax,%eax
100c75: 75 0a jne 100c81 <_translate_sc+0x40d>
100c77: 8b 0d 18 84 10 00 mov 0x108418,%ecx
100c7d: 85 c9 test %ecx,%ecx
100c7f: 74 0a je 100c8b <_translate_sc+0x417>
100c81: ba 49 00 00 00 mov $0x49,%edx
100c86: e9 21 fd ff ff jmp 1009ac <_translate_sc+0x138>
100c8b: ba 69 00 00 00 mov $0x69,%edx
100c90: e9 17 fd ff ff jmp 1009ac <_translate_sc+0x138>
100c95: 8b 15 e8 83 10 00 mov 0x1083e8,%edx
100c9b: 85 d2 test %edx,%edx
100c9d: 75 09 jne 100ca8 <_translate_sc+0x434>
100c9f: a1 18 84 10 00 mov 0x108418,%eax
100ca4: 85 c0 test %eax,%eax
100ca6: 74 0a je 100cb2 <_translate_sc+0x43e>
100ca8: ba 4f 00 00 00 mov $0x4f,%edx
100cad: e9 fa fc ff ff jmp 1009ac <_translate_sc+0x138>
100cb2: ba 6f 00 00 00 mov $0x6f,%edx
100cb7: e9 f0 fc ff ff jmp 1009ac <_translate_sc+0x138>
100cbc: a1 e8 83 10 00 mov 0x1083e8,%eax
100cc1: 85 c0 test %eax,%eax
100cc3: 75 09 jne 100cce <_translate_sc+0x45a>
100cc5: a1 18 84 10 00 mov 0x108418,%eax
100cca: 85 c0 test %eax,%eax
100ccc: 74 0a je 100cd8 <_translate_sc+0x464>
100cce: ba 50 00 00 00 mov $0x50,%edx
100cd3: e9 d4 fc ff ff jmp 1009ac <_translate_sc+0x138>
100cd8: ba 70 00 00 00 mov $0x70,%edx
100cdd: e9 ca fc ff ff jmp 1009ac <_translate_sc+0x138>
100ce2: a1 e8 83 10 00 mov 0x1083e8,%eax
100ce7: 85 c0 test %eax,%eax
100ce9: 75 09 jne 100cf4 <_translate_sc+0x480>
100ceb: a1 18 84 10 00 mov 0x108418,%eax
100cf0: 85 c0 test %eax,%eax
100cf2: 74 0a je 100cfe <_translate_sc+0x48a>
100cf4: ba 7b 00 00 00 mov $0x7b,%edx
100cf9: e9 ae fc ff ff jmp 1009ac <_translate_sc+0x138>
100cfe: ba 5b 00 00 00 mov $0x5b,%edx
100d03: e9 a4 fc ff ff jmp 1009ac <_translate_sc+0x138>
100d08: a1 e8 83 10 00 mov 0x1083e8,%eax
100d0d: 85 c0 test %eax,%eax
100d0f: 75 0a jne 100d1b <_translate_sc+0x4a7>
100d11: 8b 0d 18 84 10 00 mov 0x108418,%ecx
100d17: 85 c9 test %ecx,%ecx
100d19: 74 0a je 100d25 <_translate_sc+0x4b1>
100d1b: ba 7d 00 00 00 mov $0x7d,%edx
100d20: e9 87 fc ff ff jmp 1009ac <_translate_sc+0x138>
100d25: ba 5d 00 00 00 mov $0x5d,%edx
100d2a: e9 7d fc ff ff jmp 1009ac <_translate_sc+0x138>
100d2f: ba 0a 00 00 00 mov $0xa,%edx
100d34: e9 73 fc ff ff jmp 1009ac <_translate_sc+0x138>
100d39: 8b 15 e8 83 10 00 mov 0x1083e8,%edx
100d3f: 85 d2 test %edx,%edx
100d41: 75 09 jne 100d4c <_translate_sc+0x4d8>
100d43: a1 18 84 10 00 mov 0x108418,%eax
100d48: 85 c0 test %eax,%eax
100d4a: 74 0a je 100d56 <_translate_sc+0x4e2>
100d4c: ba 41 00 00 00 mov $0x41,%edx
100d51: e9 56 fc ff ff jmp 1009ac <_translate_sc+0x138>
100d56: ba 61 00 00 00 mov $0x61,%edx
100d5b: e9 4c fc ff ff jmp 1009ac <_translate_sc+0x138>
100d60: a1 e8 83 10 00 mov 0x1083e8,%eax
100d65: 85 c0 test %eax,%eax
100d67: 75 09 jne 100d72 <_translate_sc+0x4fe>
100d69: a1 18 84 10 00 mov 0x108418,%eax
100d6e: 85 c0 test %eax,%eax
100d70: 74 0a je 100d7c <_translate_sc+0x508>
100d72: ba 53 00 00 00 mov $0x53,%edx
100d77: e9 30 fc ff ff jmp 1009ac <_translate_sc+0x138>
100d7c: ba 73 00 00 00 mov $0x73,%edx
100d81: e9 26 fc ff ff jmp 1009ac <_translate_sc+0x138>
100d86: a1 e8 83 10 00 mov 0x1083e8,%eax
100d8b: 85 c0 test %eax,%eax
100d8d: 75 09 jne 100d98 <_translate_sc+0x524>
100d8f: a1 18 84 10 00 mov 0x108418,%eax
100d94: 85 c0 test %eax,%eax
100d96: 74 0a je 100da2 <_translate_sc+0x52e>
100d98: ba 44 00 00 00 mov $0x44,%edx
100d9d: e9 0a fc ff ff jmp 1009ac <_translate_sc+0x138>
100da2: ba 64 00 00 00 mov $0x64,%edx
100da7: e9 00 fc ff ff jmp 1009ac <_translate_sc+0x138>
100dac: a1 e8 83 10 00 mov 0x1083e8,%eax
100db1: 85 c0 test %eax,%eax
100db3: 75 0a jne 100dbf <_translate_sc+0x54b>
100db5: 8b 0d 18 84 10 00 mov 0x108418,%ecx
100dbb: 85 c9 test %ecx,%ecx
100dbd: 74 0a je 100dc9 <_translate_sc+0x555>
100dbf: ba 46 00 00 00 mov $0x46,%edx
100dc4: e9 e3 fb ff ff jmp 1009ac <_translate_sc+0x138>
100dc9: ba 66 00 00 00 mov $0x66,%edx
100dce: e9 d9 fb ff ff jmp 1009ac <_translate_sc+0x138>
100dd3: 8b 15 e8 83 10 00 mov 0x1083e8,%edx
100dd9: 85 d2 test %edx,%edx
100ddb: 75 09 jne 100de6 <_translate_sc+0x572>
100ddd: a1 18 84 10 00 mov 0x108418,%eax
100de2: 85 c0 test %eax,%eax
100de4: 74 0a je 100df0 <_translate_sc+0x57c>
100de6: ba 47 00 00 00 mov $0x47,%edx
100deb: e9 bc fb ff ff jmp 1009ac <_translate_sc+0x138>
100df0: ba 67 00 00 00 mov $0x67,%edx
100df5: e9 b2 fb ff ff jmp 1009ac <_translate_sc+0x138>
100dfa: a1 e8 83 10 00 mov 0x1083e8,%eax
100dff: 85 c0 test %eax,%eax
100e01: 75 09 jne 100e0c <_translate_sc+0x598>
100e03: a1 18 84 10 00 mov 0x108418,%eax
100e08: 85 c0 test %eax,%eax
100e0a: 74 0a je 100e16 <_translate_sc+0x5a2>
100e0c: ba 48 00 00 00 mov $0x48,%edx
100e11: e9 96 fb ff ff jmp 1009ac <_translate_sc+0x138>
100e16: ba 68 00 00 00 mov $0x68,%edx
100e1b: e9 8c fb ff ff jmp 1009ac <_translate_sc+0x138>
100e20: a1 e8 83 10 00 mov 0x1083e8,%eax
100e25: 85 c0 test %eax,%eax
100e27: 75 09 jne 100e32 <_translate_sc+0x5be>
100e29: a1 18 84 10 00 mov 0x108418,%eax
100e2e: 85 c0 test %eax,%eax
100e30: 74 0a je 100e3c <_translate_sc+0x5c8>
100e32: ba 4a 00 00 00 mov $0x4a,%edx
100e37: e9 70 fb ff ff jmp 1009ac <_translate_sc+0x138>
100e3c: ba 6a 00 00 00 mov $0x6a,%edx
100e41: e9 66 fb ff ff jmp 1009ac <_translate_sc+0x138>
100e46: a1 e8 83 10 00 mov 0x1083e8,%eax
100e4b: 85 c0 test %eax,%eax
100e4d: 75 0a jne 100e59 <_translate_sc+0x5e5>
100e4f: 8b 0d 18 84 10 00 mov 0x108418,%ecx
100e55: 85 c9 test %ecx,%ecx
100e57: 74 0a je 100e63 <_translate_sc+0x5ef>
100e59: ba 4b 00 00 00 mov $0x4b,%edx
100e5e: e9 49 fb ff ff jmp 1009ac <_translate_sc+0x138>
100e63: ba 6b 00 00 00 mov $0x6b,%edx
100e68: e9 3f fb ff ff jmp 1009ac <_translate_sc+0x138>
100e6d: 8b 15 e8 83 10 00 mov 0x1083e8,%edx
100e73: 85 d2 test %edx,%edx
100e75: 75 09 jne 100e80 <_translate_sc+0x60c>
100e77: a1 18 84 10 00 mov 0x108418,%eax
100e7c: 85 c0 test %eax,%eax
100e7e: 74 0a je 100e8a <_translate_sc+0x616>
100e80: ba 4c 00 00 00 mov $0x4c,%edx
100e85: e9 22 fb ff ff jmp 1009ac <_translate_sc+0x138>
100e8a: ba 6c 00 00 00 mov $0x6c,%edx
100e8f: e9 18 fb ff ff jmp 1009ac <_translate_sc+0x138>
100e94: a1 e8 83 10 00 mov 0x1083e8,%eax
100e99: 85 c0 test %eax,%eax
100e9b: 75 09 jne 100ea6 <_translate_sc+0x632>
100e9d: a1 18 84 10 00 mov 0x108418,%eax
100ea2: 85 c0 test %eax,%eax
100ea4: 74 0a je 100eb0 <_translate_sc+0x63c>
100ea6: ba 3a 00 00 00 mov $0x3a,%edx
100eab: e9 fc fa ff ff jmp 1009ac <_translate_sc+0x138>
100eb0: ba 3b 00 00 00 mov $0x3b,%edx
100eb5: e9 f2 fa ff ff jmp 1009ac <_translate_sc+0x138>
100eba: a1 e8 83 10 00 mov 0x1083e8,%eax
100ebf: 85 c0 test %eax,%eax
100ec1: 75 09 jne 100ecc <_translate_sc+0x658>
100ec3: a1 18 84 10 00 mov 0x108418,%eax
100ec8: 85 c0 test %eax,%eax
100eca: 74 0a je 100ed6 <_translate_sc+0x662>
100ecc: ba 22 00 00 00 mov $0x22,%edx
100ed1: e9 d6 fa ff ff jmp 1009ac <_translate_sc+0x138>
100ed6: ba 27 00 00 00 mov $0x27,%edx
100edb: e9 cc fa ff ff jmp 1009ac <_translate_sc+0x138>
100ee0: ba 7e 00 00 00 mov $0x7e,%edx
100ee5: e9 c2 fa ff ff jmp 1009ac <_translate_sc+0x138>
100eea: a1 e8 83 10 00 mov 0x1083e8,%eax
100eef: 85 c0 test %eax,%eax
100ef1: 75 0a jne 100efd <_translate_sc+0x689>
100ef3: 8b 0d 18 84 10 00 mov 0x108418,%ecx
100ef9: 85 c9 test %ecx,%ecx
100efb: 74 0a je 100f07 <_translate_sc+0x693>
100efd: ba 7c 00 00 00 mov $0x7c,%edx
100f02: e9 a5 fa ff ff jmp 1009ac <_translate_sc+0x138>
100f07: ba 5c 00 00 00 mov $0x5c,%edx
100f0c: e9 9b fa ff ff jmp 1009ac <_translate_sc+0x138>
100f11: a1 e8 83 10 00 mov 0x1083e8,%eax
100f16: 85 c0 test %eax,%eax
100f18: 75 0a jne 100f24 <_translate_sc+0x6b0>
100f1a: 8b 0d 18 84 10 00 mov 0x108418,%ecx
100f20: 85 c9 test %ecx,%ecx
100f22: 74 0a je 100f2e <_translate_sc+0x6ba>
100f24: ba 5a 00 00 00 mov $0x5a,%edx
100f29: e9 7e fa ff ff jmp 1009ac <_translate_sc+0x138>
100f2e: ba 7a 00 00 00 mov $0x7a,%edx
100f33: e9 74 fa ff ff jmp 1009ac <_translate_sc+0x138>
100f38: 8b 15 e8 83 10 00 mov 0x1083e8,%edx
100f3e: 85 d2 test %edx,%edx
100f40: 75 09 jne 100f4b <_translate_sc+0x6d7>
100f42: a1 18 84 10 00 mov 0x108418,%eax
100f47: 85 c0 test %eax,%eax
100f49: 74 0a je 100f55 <_translate_sc+0x6e1>
100f4b: ba 58 00 00 00 mov $0x58,%edx
100f50: e9 57 fa ff ff jmp 1009ac <_translate_sc+0x138>
100f55: ba 78 00 00 00 mov $0x78,%edx
100f5a: e9 4d fa ff ff jmp 1009ac <_translate_sc+0x138>
100f5f: a1 e8 83 10 00 mov 0x1083e8,%eax
100f64: 85 c0 test %eax,%eax
100f66: 75 09 jne 100f71 <_translate_sc+0x6fd>
100f68: a1 18 84 10 00 mov 0x108418,%eax
100f6d: 85 c0 test %eax,%eax
100f6f: 74 0a je 100f7b <_translate_sc+0x707>
100f71: ba 43 00 00 00 mov $0x43,%edx
100f76: e9 31 fa ff ff jmp 1009ac <_translate_sc+0x138>
100f7b: ba 63 00 00 00 mov $0x63,%edx
100f80: e9 27 fa ff ff jmp 1009ac <_translate_sc+0x138>
100f85: a1 e8 83 10 00 mov 0x1083e8,%eax
100f8a: 85 c0 test %eax,%eax
100f8c: 75 09 jne 100f97 <_translate_sc+0x723>
100f8e: a1 18 84 10 00 mov 0x108418,%eax
100f93: 85 c0 test %eax,%eax
100f95: 74 0a je 100fa1 <_translate_sc+0x72d>
100f97: ba 56 00 00 00 mov $0x56,%edx
100f9c: e9 0b fa ff ff jmp 1009ac <_translate_sc+0x138>
100fa1: ba 76 00 00 00 mov $0x76,%edx
100fa6: e9 01 fa ff ff jmp 1009ac <_translate_sc+0x138>
100fab: a1 e8 83 10 00 mov 0x1083e8,%eax
100fb0: 85 c0 test %eax,%eax
100fb2: 75 0a jne 100fbe <_translate_sc+0x74a>
100fb4: 8b 0d 18 84 10 00 mov 0x108418,%ecx
100fba: 85 c9 test %ecx,%ecx
100fbc: 74 0a je 100fc8 <_translate_sc+0x754>
100fbe: ba 42 00 00 00 mov $0x42,%edx
100fc3: e9 e4 f9 ff ff jmp 1009ac <_translate_sc+0x138>
100fc8: ba 62 00 00 00 mov $0x62,%edx
100fcd: e9 da f9 ff ff jmp 1009ac <_translate_sc+0x138>
100fd2: 8b 15 e8 83 10 00 mov 0x1083e8,%edx
100fd8: 85 d2 test %edx,%edx
100fda: 75 09 jne 100fe5 <_translate_sc+0x771>
100fdc: a1 18 84 10 00 mov 0x108418,%eax
100fe1: 85 c0 test %eax,%eax
100fe3: 74 0a je 100fef <_translate_sc+0x77b>
100fe5: ba 4e 00 00 00 mov $0x4e,%edx
100fea: e9 bd f9 ff ff jmp 1009ac <_translate_sc+0x138>
100fef: ba 6e 00 00 00 mov $0x6e,%edx
100ff4: e9 b3 f9 ff ff jmp 1009ac <_translate_sc+0x138>
100ff9: a1 e8 83 10 00 mov 0x1083e8,%eax
100ffe: 85 c0 test %eax,%eax
101000: 75 09 jne 10100b <_translate_sc+0x797>
101002: a1 18 84 10 00 mov 0x108418,%eax
101007: 85 c0 test %eax,%eax
101009: 74 0a je 101015 <_translate_sc+0x7a1>
10100b: ba 4d 00 00 00 mov $0x4d,%edx
101010: e9 97 f9 ff ff jmp 1009ac <_translate_sc+0x138>
101015: ba 6d 00 00 00 mov $0x6d,%edx
10101a: e9 8d f9 ff ff jmp 1009ac <_translate_sc+0x138>
10101f: a1 e8 83 10 00 mov 0x1083e8,%eax
101024: 85 c0 test %eax,%eax
101026: 75 09 jne 101031 <_translate_sc+0x7bd>
101028: a1 18 84 10 00 mov 0x108418,%eax
10102d: 85 c0 test %eax,%eax
10102f: 74 0a je 10103b <_translate_sc+0x7c7>
101031: ba 3c 00 00 00 mov $0x3c,%edx
101036: e9 71 f9 ff ff jmp 1009ac <_translate_sc+0x138>
10103b: ba 2c 00 00 00 mov $0x2c,%edx
101040: e9 67 f9 ff ff jmp 1009ac <_translate_sc+0x138>
101045: 8b 15 e8 83 10 00 mov 0x1083e8,%edx
10104b: 85 d2 test %edx,%edx
10104d: 75 09 jne 101058 <_translate_sc+0x7e4>
10104f: a1 18 84 10 00 mov 0x108418,%eax
101054: 85 c0 test %eax,%eax
101056: 74 0a je 101062 <_translate_sc+0x7ee>
101058: ba 3e 00 00 00 mov $0x3e,%edx
10105d: e9 4a f9 ff ff jmp 1009ac <_translate_sc+0x138>
101062: ba 2e 00 00 00 mov $0x2e,%edx
101067: e9 40 f9 ff ff jmp 1009ac <_translate_sc+0x138>
10106c: a1 e8 83 10 00 mov 0x1083e8,%eax
101071: 85 c0 test %eax,%eax
101073: 75 09 jne 10107e <_translate_sc+0x80a>
101075: a1 18 84 10 00 mov 0x108418,%eax
10107a: 85 c0 test %eax,%eax
10107c: 74 0a je 101088 <_translate_sc+0x814>
10107e: ba 3f 00 00 00 mov $0x3f,%edx
101083: e9 24 f9 ff ff jmp 1009ac <_translate_sc+0x138>
101088: ba 2f 00 00 00 mov $0x2f,%edx
10108d: e9 1a f9 ff ff jmp 1009ac <_translate_sc+0x138>
101092: ba 2a 00 00 00 mov $0x2a,%edx
101097: e9 10 f9 ff ff jmp 1009ac <_translate_sc+0x138>
10109c: ba 20 00 00 00 mov $0x20,%edx
1010a1: e9 06 f9 ff ff jmp 1009ac <_translate_sc+0x138>
1010a6: a1 54 84 10 00 mov 0x108454,%eax
1010ab: 31 d2 xor %edx,%edx
1010ad: 85 c0 test %eax,%eax
1010af: 0f 84 f7 f8 ff ff je 1009ac <_translate_sc+0x138>
1010b5: a1 00 80 10 00 mov 0x108000,%eax
1010ba: 85 c0 test %eax,%eax
1010bc: 0f 85 ea f8 ff ff jne 1009ac <_translate_sc+0x138>
1010c2: ba 37 00 00 00 mov $0x37,%edx
1010c7: e9 e0 f8 ff ff jmp 1009ac <_translate_sc+0x138>
1010cc: a1 54 84 10 00 mov 0x108454,%eax
1010d1: 31 d2 xor %edx,%edx
1010d3: 85 c0 test %eax,%eax
1010d5: 0f 84 d1 f8 ff ff je 1009ac <_translate_sc+0x138>
1010db: 8b 0d 00 80 10 00 mov 0x108000,%ecx
1010e1: 85 c9 test %ecx,%ecx
1010e3: 0f 85 c3 f8 ff ff jne 1009ac <_translate_sc+0x138>
1010e9: ba 38 00 00 00 mov $0x38,%edx
1010ee: e9 b9 f8 ff ff jmp 1009ac <_translate_sc+0x138>
1010f3: a1 54 84 10 00 mov 0x108454,%eax
1010f8: 31 d2 xor %edx,%edx
1010fa: 85 c0 test %eax,%eax
1010fc: 0f 84 aa f8 ff ff je 1009ac <_translate_sc+0x138>
101102: a1 00 80 10 00 mov 0x108000,%eax
101107: 85 c0 test %eax,%eax
101109: 0f 85 9d f8 ff ff jne 1009ac <_translate_sc+0x138>
10110f: ba 39 00 00 00 mov $0x39,%edx
101114: e9 93 f8 ff ff jmp 1009ac <_translate_sc+0x138>
101119: ba 2d 00 00 00 mov $0x2d,%edx
10111e: e9 89 f8 ff ff jmp 1009ac <_translate_sc+0x138>
101123: a1 54 84 10 00 mov 0x108454,%eax
101128: 31 d2 xor %edx,%edx
10112a: 85 c0 test %eax,%eax
10112c: 0f 84 7a f8 ff ff je 1009ac <_translate_sc+0x138>
101132: 8b 0d 00 80 10 00 mov 0x108000,%ecx
101138: 85 c9 test %ecx,%ecx
10113a: 0f 85 6c f8 ff ff jne 1009ac <_translate_sc+0x138>
101140: ba 34 00 00 00 mov $0x34,%edx
101145: e9 62 f8 ff ff jmp 1009ac <_translate_sc+0x138>
10114a: a1 54 84 10 00 mov 0x108454,%eax
10114f: 31 d2 xor %edx,%edx
101151: 85 c0 test %eax,%eax
101153: 0f 84 53 f8 ff ff je 1009ac <_translate_sc+0x138>
101159: a1 00 80 10 00 mov 0x108000,%eax
10115e: 85 c0 test %eax,%eax
101160: 0f 85 46 f8 ff ff jne 1009ac <_translate_sc+0x138>
101166: ba 35 00 00 00 mov $0x35,%edx
10116b: e9 3c f8 ff ff jmp 1009ac <_translate_sc+0x138>
101170: a1 54 84 10 00 mov 0x108454,%eax
101175: 31 d2 xor %edx,%edx
101177: 85 c0 test %eax,%eax
101179: 0f 84 2d f8 ff ff je 1009ac <_translate_sc+0x138>
10117f: 8b 0d 00 80 10 00 mov 0x108000,%ecx
101185: 85 c9 test %ecx,%ecx
101187: 0f 85 1f f8 ff ff jne 1009ac <_translate_sc+0x138>
10118d: ba 36 00 00 00 mov $0x36,%edx
101192: e9 15 f8 ff ff jmp 1009ac <_translate_sc+0x138>
101197: ba 2b 00 00 00 mov $0x2b,%edx
10119c: e9 0b f8 ff ff jmp 1009ac <_translate_sc+0x138>
1011a1: a1 54 84 10 00 mov 0x108454,%eax
1011a6: 31 d2 xor %edx,%edx
1011a8: 85 c0 test %eax,%eax
1011aa: 0f 84 fc f7 ff ff je 1009ac <_translate_sc+0x138>
1011b0: a1 00 80 10 00 mov 0x108000,%eax
1011b5: 85 c0 test %eax,%eax
1011b7: 0f 85 ef f7 ff ff jne 1009ac <_translate_sc+0x138>
1011bd: ba 31 00 00 00 mov $0x31,%edx
1011c2: e9 e5 f7 ff ff jmp 1009ac <_translate_sc+0x138>
1011c7: a1 54 84 10 00 mov 0x108454,%eax
1011cc: 31 d2 xor %edx,%edx
1011ce: 85 c0 test %eax,%eax
1011d0: 0f 84 d6 f7 ff ff je 1009ac <_translate_sc+0x138>
1011d6: 8b 0d 00 80 10 00 mov 0x108000,%ecx
1011dc: 85 c9 test %ecx,%ecx
1011de: 0f 85 c8 f7 ff ff jne 1009ac <_translate_sc+0x138>
1011e4: ba 32 00 00 00 mov $0x32,%edx
1011e9: e9 be f7 ff ff jmp 1009ac <_translate_sc+0x138>
1011ee: a1 54 84 10 00 mov 0x108454,%eax
1011f3: 31 d2 xor %edx,%edx
1011f5: 85 c0 test %eax,%eax
1011f7: 0f 84 af f7 ff ff je 1009ac <_translate_sc+0x138>
1011fd: a1 00 80 10 00 mov 0x108000,%eax
101202: 85 c0 test %eax,%eax
101204: 0f 85 a2 f7 ff ff jne 1009ac <_translate_sc+0x138>
10120a: ba 33 00 00 00 mov $0x33,%edx
10120f: e9 98 f7 ff ff jmp 1009ac <_translate_sc+0x138>
101214: a1 54 84 10 00 mov 0x108454,%eax
101219: 31 d2 xor %edx,%edx
10121b: 85 c0 test %eax,%eax
10121d: 0f 84 89 f7 ff ff je 1009ac <_translate_sc+0x138>
101223: 8b 0d 00 80 10 00 mov 0x108000,%ecx
101229: 85 c9 test %ecx,%ecx
10122b: 0f 85 7b f7 ff ff jne 1009ac <_translate_sc+0x138>
101231: ba 30 00 00 00 mov $0x30,%edx
101236: e9 71 f7 ff ff jmp 1009ac <_translate_sc+0x138>
10123b: a1 54 84 10 00 mov 0x108454,%eax
101240: 31 d2 xor %edx,%edx
101242: 85 c0 test %eax,%eax
101244: 0f 84 62 f7 ff ff je 1009ac <_translate_sc+0x138>
10124a: 8b 0d 00 80 10 00 mov 0x108000,%ecx
101250: 85 c9 test %ecx,%ecx
101252: 0f 85 54 f7 ff ff jne 1009ac <_translate_sc+0x138>
101258: ba 2e 00 00 00 mov $0x2e,%edx
10125d: e9 4a f7 ff ff jmp 1009ac <_translate_sc+0x138>
101262: 89 f6 mov %esi,%esi
101264: 31 c0 xor %eax,%eax
101266: 31 d2 xor %edx,%edx
101268: 85 c0 test %eax,%eax
10126a: 0f 85 34 f6 ff ff jne 1008a4 <_translate_sc+0x30>
101270: e9 37 f7 ff ff jmp 1009ac <_translate_sc+0x138>
101275: 8d 76 00 lea 0x0(%esi),%esi
101278: 8b 15 40 85 10 00 mov 0x108540,%edx
10127e: 4a dec %edx
10127f: 0f 89 01 f6 ff ff jns 100886 <_translate_sc+0x12>
101285: 31 c0 xor %eax,%eax
101287: c7 05 40 85 10 00 00 movl $0x0,0x108540
10128e: 00 00 00
101291: e9 60 f6 ff ff jmp 1008f6 <_translate_sc+0x82>
101296: 89 f6 mov %esi,%esi
00101298 <handle_meta_key>:
/**
* handle_meta_key()
*
* I'll pretty this up later
*/
void handle_meta_key(unsigned k)
{
101298: 55 push %ebp
101299: 89 e5 mov %esp,%ebp
10129b: 83 ec 08 sub $0x8,%esp
int i;
k = k; /* to shut gcc up */
/**
* Check for the infamous three finger salute
*/
if((keys[KEY_RCTRL] || keys[KEY_LCTRL]) &&
10129e: 8b 15 b4 83 10 00 mov 0x1083b4,%edx
1012a4: 85 d2 test %edx,%edx
1012a6: 74 69 je 101311 <handle_meta_key+0x79>
1012a8: 8b 15 20 84 10 00 mov 0x108420,%edx
1012ae: 85 d2 test %edx,%edx
1012b0: 74 0a je 1012bc <handle_meta_key+0x24>
1012b2: a1 8c 84 10 00 mov 0x10848c,%eax
1012b7: 85 c0 test %eax,%eax
1012b9: 75 51 jne 10130c <handle_meta_key+0x74>
1012bb: 90 nop
(keys[KEY_RALT] || keys[KEY_LALT]) &&
keys[KEY_DEL])
{
/**
* FIXME
*
* This should call _send_signal()
*/
reboot();
}
/**
* Check for Alt + F1-F12 for virtual terminals
*/
for(i = 0; i < 10; i++)
1012bc: 31 c0 xor %eax,%eax
1012be: b9 40 83 10 00 mov $0x108340,%ecx
1012c3: 90 nop
{
if((keys[KEY_LALT] || keys[KEY_RALT]) && keys[i + KEY_F1])
1012c4: 85 d2 test %edx,%edx
1012c6: 74 0a je 1012d2 <handle_meta_key+0x3a>
1012c8: 83 bc 81 ec 00 00 00 cmpl $0x0,0xec(%ecx,%eax,4)
1012cf: 00
1012d0: 75 35 jne 101307 <handle_meta_key+0x6f>
1012d2: 40 inc %eax
1012d3: 83 f8 09 cmp $0x9,%eax
1012d6: 7e ec jle 1012c4 <handle_meta_key+0x2c>
{
select_vc(i);
return;
}
}
if((keys[KEY_LALT] || keys[KEY_RALT]) && keys[KEY_F11])
1012d8: 85 d2 test %edx,%edx
1012da: 74 13 je 1012ef <handle_meta_key+0x57>
1012dc: 8b 15 9c 84 10 00 mov 0x10849c,%edx
1012e2: 85 d2 test %edx,%edx
1012e4: 75 18 jne 1012fe <handle_meta_key+0x66>
{
select_vc(10);
return;
}
if((keys[KEY_LALT] || keys[KEY_RALT]) && keys[KEY_F12])
1012e6: a1 a0 84 10 00 mov 0x1084a0,%eax
1012eb: 85 c0 test %eax,%eax
1012ed: 75 02 jne 1012f1 <handle_meta_key+0x59>
{
select_vc(11);
return;
}
}
1012ef: c9 leave
1012f0: c3 ret
1012f1: c7 45 08 0b 00 00 00 movl $0xb,0x8(%ebp)
1012f8: c9 leave
1012f9: e9 06 35 00 00 jmp 104804 <select_vc>
1012fe: c7 45 08 0a 00 00 00 movl $0xa,0x8(%ebp)
101305: eb f1 jmp 1012f8 <handle_meta_key+0x60>
101307: 89 45 08 mov %eax,0x8(%ebp)
10130a: eb ec jmp 1012f8 <handle_meta_key+0x60>
10130c: e8 d3 f4 ff ff call 1007e4 <reboot>
101311: 8b 15 20 84 10 00 mov 0x108420,%edx
101317: eb a3 jmp 1012bc <handle_meta_key+0x24>
101319: 8d 76 00 lea 0x0(%esi),%esi
0010131c <keyboard_irq>:
/**
* keyboard_irq()
*
* Called when a keyboard interrupt is generated.
*/
void keyboard_irq(void)
{
10131c: 55 push %ebp
10131d: 89 e5 mov %esp,%ebp
10131f: 53 push %ebx
101320: 83 ec 10 sub $0x10,%esp
register char a;
unsigned c;
unsigned short kbdstat;
rawkey = inportb(0x60);
101323: 6a 60 push $0x60
101325: e8 ea 3c 00 00 call 105014 <inportb>
10132a: a3 20 83 10 00 mov %eax,0x108320
outportb(0x61, (a=inportb(0x61)|0x82));
10132f: c7 04 24 61 00 00 00 movl $0x61,(%esp,1)
101336: e8 d9 3c 00 00 call 105014 <inportb>
10133b: 83 c8 82 or $0xffffff82,%eax
10133e: 59 pop %ecx
10133f: 5b pop %ebx
101340: 0f be d8 movsbl %al,%ebx
101343: 53 push %ebx
101344: 6a 61 push $0x61
101346: e8 69 3d 00 00 call 1050b4 <outportb>
outportb(0x61, a & 0x7F);
10134b: 58 pop %eax
10134c: 5a pop %edx
10134d: 83 e3 7f and $0x7f,%ebx
101350: 53 push %ebx
101351: 6a 61 push $0x61
101353: e8 5c 3d 00 00 call 1050b4 <outportb>
/**
* If it's less than 0x80 then it's definatelly
* a make code or a repeat code
*/
if(rawkey < 0x80)
101358: 8b 0d 20 83 10 00 mov 0x108320,%ecx
10135e: 83 c4 10 add $0x10,%esp
101361: 83 f9 7f cmp $0x7f,%ecx
101364: 7f 6a jg 1013d0 <keyboard_irq+0xb4>
{
/**
* We don't want to gunk up the numlock key
* because we will define it's state in the
* break code a bit later
*/
if((rawkey != KEYP_NUMLCK) && (rawkey != KEY_SCRLCK) && (rawkey != KEY_CAPS))
101366: 8d 41 bb lea 0xffffffbb(%ecx),%eax
101369: 83 f8 01 cmp $0x1,%eax
10136c: 76 10 jbe 10137e <keyboard_irq+0x62>
10136e: 83 f9 3a cmp $0x3a,%ecx
101371: 74 0b je 10137e <keyboard_irq+0x62>
keys[rawkey] = 1;
101373: c7 04 8d 40 83 10 00 movl $0x1,0x108340(,%ecx,4)
10137a: 01 00 00 00
keyDown(rawkey);
10137e: 83 ec 0c sub $0xc,%esp
101381: ff 35 20 83 10 00 pushl 0x108320
101387: e8 c4 ee ff ff call 100250 <keyDown>
10138c: 58 pop %eax
}
else /* rawkey >= 0x80 */
{
if(rawkey == 0xE0)
{
/**
* It's either a make code, break code, or repeat code
*/
rawkey = inportb(0x60);
outportb(0x61, (a=inportb(0x61)|0x82));
outportb(0x61, a & 0x7F);
if(rawkey < 0x80)
{
/**
* Ok, it's a make code or repeat code for the numeric
* keypad (gray keys)
*/
keys[rawkey] = 1;
keyDown(rawkey);
}
else /* rawkey >= 0x80 */
{
/**
* It's either a make code for the numeric keypad or
* a break code for the numeric keypad.
*/
if(rawkey == 0x2A)
{
/**
* Ok, we have a make code for the numeric keypad
* and NUMLOCK is on. The second byte is what we
* want since what we have so far is this:
*
* 0xE0 0x2A
*/
rawkey = inportb(0x60);
outportb(0x61, (a=inportb(0x61)|0x82));
outportb(0x61, a & 0x7F);
rawkey = inportb(0x60);
outportb(0x61, (a=inportb(0x61)|0x82));
outportb(0x61, a & 0x7F);
keys[rawkey] = 1;
keyDown(rawkey);
}
else
{
/**
* It's a break code from the numeric keypad.
*/
keys[rawkey] = 0;
keyUp(rawkey);
}
}
}
else /* rawkey != 0xE0 */
{
/**
* It's a break code
*
* Make sure we toggle the numlock, scroll lock, and caps lock key.
*/
if(((rawkey - 0x80) == KEYP_NUMLCK) ||
((rawkey - 0x80) == KEY_SCRLCK) ||
((rawkey - 0x80) == KEY_CAPS))
{
keys[rawkey - 0x80] = !keys[rawkey - 0x80];
kbdstat = 0;
if(keys[KEY_SCRLCK])
kbdstat |= 1;
if(keys[KEYP_NUMLCK])
kbdstat |= 2;
if(keys[KEY_CAPS])
kbdstat |= 4;
_write_kb(0x60, 0xED);
_write_kb(0x60, kbdstat);
outportb(0x20, 0x20);
keyUp(rawkey);
return;
}
keys[rawkey - 0x80] = 0;
keyUp(rawkey);
}
}
c = _translate_sc(rawkey);
10138d: ff 35 20 83 10 00 pushl 0x108320
101393: e8 dc f4 ff ff call 100874 <_translate_sc>
if(c != 0)
101398: 83 c4 10 add $0x10,%esp
10139b: 85 c0 test %eax,%eax
10139d: 74 21 je 1013c0 <keyboard_irq+0xa4>
printf("%c", c);
10139f: 83 ec 08 sub $0x8,%esp
1013a2: 50 push %eax
1013a3: 68 e5 51 10 00 push $0x1051e5
1013a8: e8 27 3d 00 00 call 1050d4 <printf>
1013ad: 59 pop %ecx
1013ae: 5b pop %ebx
else
{
/**
* We need to check for meta-key-crap here
*/
handle_meta_key(rawkey);
}
//enable();
outportb(0x20, 0x20);
1013af: 6a 20 push $0x20
1013b1: 6a 20 push $0x20
1013b3: e8 fc 3c 00 00 call 1050b4 <outportb>
}
1013b8: 8b 5d fc mov 0xfffffffc(%ebp),%ebx
1013bb: c9 leave
1013bc: c3 ret
1013bd: 8d 76 00 lea 0x0(%esi),%esi
1013c0: 83 ec 0c sub $0xc,%esp
1013c3: ff 35 20 83 10 00 pushl 0x108320
1013c9: e8 ca fe ff ff call 101298 <handle_meta_key>
1013ce: eb dd jmp 1013ad <keyboard_irq+0x91>
1013d0: 81 f9 e0 00 00 00 cmp $0xe0,%ecx
1013d6: 0f 84 a5 00 00 00 je 101481 <keyboard_irq+0x165>
1013dc: 8d 81 3b ff ff ff lea 0xffffff3b(%ecx),%eax
1013e2: 83 f8 01 cmp $0x1,%eax
1013e5: 76 21 jbe 101408 <keyboard_irq+0xec>
1013e7: 81 f9 ba 00 00 00 cmp $0xba,%ecx
1013ed: 74 19 je 101408 <keyboard_irq+0xec>
1013ef: 83 ec 0c sub $0xc,%esp
1013f2: c7 04 8d 40 81 10 00 movl $0x0,0x108140(,%ecx,4)
1013f9: 00 00 00 00
1013fd: 51 push %ecx
1013fe: e8 55 ee ff ff call 100258 <keyUp>
101403: eb 87 jmp 10138c <keyboard_irq+0x70>
101405: 8d 76 00 lea 0x0(%esi),%esi
101408: ba 40 83 10 00 mov $0x108340,%edx
10140d: 31 c0 xor %eax,%eax
10140f: 83 bc 8a 00 fe ff ff cmpl $0x0,0xfffffe00(%edx,%ecx,4)
101416: 00
101417: 0f 94 c0 sete %al
10141a: 89 84 8a 00 fe ff ff mov %eax,0xfffffe00(%edx,%ecx,4)
101421: a1 58 84 10 00 mov 0x108458,%eax
101426: 31 db xor %ebx,%ebx
101428: 85 c0 test %eax,%eax
10142a: 74 05 je 101431 <keyboard_irq+0x115>
10142c: bb 01 00 00 00 mov $0x1,%ebx
101431: a1 54 84 10 00 mov 0x108454,%eax
101436: 85 c0 test %eax,%eax
101438: 74 03 je 10143d <keyboard_irq+0x121>
10143a: 83 cb 02 or $0x2,%ebx
10143d: a1 28 84 10 00 mov 0x108428,%eax
101442: 85 c0 test %eax,%eax
101444: 74 03 je 101449 <keyboard_irq+0x12d>
101446: 83 cb 04 or $0x4,%ebx
101449: 83 ec 08 sub $0x8,%esp
10144c: 68 ed 00 00 00 push $0xed
101451: 6a 60 push $0x60
101453: e8 d4 f3 ff ff call 10082c <_write_kb>
101458: 59 pop %ecx
101459: 58 pop %eax
10145a: 0f b7 c3 movzwl %bx,%eax
10145d: 50 push %eax
10145e: 6a 60 push $0x60
101460: e8 c7 f3 ff ff call 10082c <_write_kb>
101465: 58 pop %eax
101466: 5a pop %edx
101467: 6a 20 push $0x20
101469: 6a 20 push $0x20
10146b: e8 44 3c 00 00 call 1050b4 <outportb>
101470: 58 pop %eax
101471: ff 35 20 83 10 00 pushl 0x108320
101477: e8 dc ed ff ff call 100258 <keyUp>
10147c: e9 37 ff ff ff jmp 1013b8 <keyboard_irq+0x9c>
101481: 83 ec 0c sub $0xc,%esp
101484: 6a 60 push $0x60
101486: e8 89 3b 00 00 call 105014 <inportb>
10148b: a3 20 83 10 00 mov %eax,0x108320
101490: c7 04 24 61 00 00 00 movl $0x61,(%esp,1)
101497: e8 78 3b 00 00 call 105014 <inportb>
10149c: 83 c8 82 or $0xffffff82,%eax
10149f: 59 pop %ecx
1014a0: 5b pop %ebx
1014a1: 0f be d8 movsbl %al,%ebx
1014a4: 53 push %ebx
1014a5: 6a 61 push $0x61
1014a7: e8 08 3c 00 00 call 1050b4 <outportb>
1014ac: 58 pop %eax
1014ad: 5a pop %edx
1014ae: 83 e3 7f and $0x7f,%ebx
1014b1: 53 push %ebx
1014b2: 6a 61 push $0x61
1014b4: e8 fb 3b 00 00 call 1050b4 <outportb>
1014b9: a1 20 83 10 00 mov 0x108320,%eax
1014be: 83 c4 10 add $0x10,%esp
1014c1: 83 f8 7f cmp $0x7f,%eax
1014c4: 0f 8e a2 00 00 00 jle 10156c <keyboard_irq+0x250>
1014ca: 83 f8 2a cmp $0x2a,%eax
1014cd: 74 14 je 1014e3 <keyboard_irq+0x1c7>
1014cf: 83 ec 0c sub $0xc,%esp
1014d2: 50 push %eax
1014d3: c7 04 85 40 83 10 00 movl $0x0,0x108340(,%eax,4)
1014da: 00 00 00 00
1014de: e9 1b ff ff ff jmp 1013fe <keyboard_irq+0xe2>
1014e3: 83 ec 0c sub $0xc,%esp
1014e6: 6a 60 push $0x60
1014e8: e8 27 3b 00 00 call 105014 <inportb>
1014ed: a3 20 83 10 00 mov %eax,0x108320
1014f2: c7 04 24 61 00 00 00 movl $0x61,(%esp,1)
1014f9: e8 16 3b 00 00 call 105014 <inportb>
1014fe: 83 c8 82 or $0xffffff82,%eax
101501: 59 pop %ecx
101502: 5b pop %ebx
101503: 0f be d8 movsbl %al,%ebx
101506: 53 push %ebx
101507: 6a 61 push $0x61
101509: e8 a6 3b 00 00 call 1050b4 <outportb>
10150e: 58 pop %eax
10150f: 5a pop %edx
101510: 83 e3 7f and $0x7f,%ebx
101513: 53 push %ebx
101514: 6a 61 push $0x61
101516: e8 99 3b 00 00 call 1050b4 <outportb>
10151b: c7 04 24 60 00 00 00 movl $0x60,(%esp,1)
101522: e8 ed 3a 00 00 call 105014 <inportb>
101527: a3 20 83 10 00 mov %eax,0x108320
10152c: c7 04 24 61 00 00 00 movl $0x61,(%esp,1)
101533: e8 dc 3a 00 00 call 105014 <inportb>
101538: 83 c8 82 or $0xffffff82,%eax
10153b: 5a pop %edx
10153c: 59 pop %ecx
10153d: 0f be d8 movsbl %al,%ebx
101540: 53 push %ebx
101541: 6a 61 push $0x61
101543: e8 6c 3b 00 00 call 1050b4 <outportb>
101548: 59 pop %ecx
101549: 58 pop %eax
10154a: 83 e3 7f and $0x7f,%ebx
10154d: 53 push %ebx
10154e: 6a 61 push $0x61
101550: e8 5f 3b 00 00 call 1050b4 <outportb>
101555: a1 20 83 10 00 mov 0x108320,%eax
10155a: 5a pop %edx
10155b: c7 04 85 40 83 10 00 movl $0x1,0x108340(,%eax,4)
101562: 01 00 00 00
101566: 50 push %eax
101567: e9 1b fe ff ff jmp 101387 <keyboard_irq+0x6b>
10156c: c7 04 85 40 83 10 00 movl $0x1,0x108340(,%eax,4)
101573: 01 00 00 00
101577: 83 ec 0c sub $0xc,%esp
10157a: eb ea jmp 101566 <keyboard_irq+0x24a>
0010157c <init_keyboard>:
/**
* init_keyboard()
*
*/
void init_keyboard(void)
{
10157c: 55 push %ebp
10157d: 89 e5 mov %esp,%ebp
static unsigned char buffers[KBD_BUF_SIZE * MAX_VC];
int i;
//klog("init", "keyboard %2u buf, %2ub each", K_KLOG_PENDING, &_vc[0]);
for(i = 0; i < MAX_VC; i++)
10157f: b9 20 80 10 00 mov $0x108020,%ecx
101584: 83 ec 08 sub $0x8,%esp
101587: 31 d2 xor %edx,%edx
101589: b8 0b 00 00 00 mov $0xb,%eax
{
_vc[i].keystrokes.data = buffers + KBD_BUF_SIZE * i;
10158e: 89 8a e0 a2 19 00 mov %ecx,0x19a2e0(%edx)
_vc[i].keystrokes.size = KBD_BUF_SIZE;
101594: c7 82 e4 a2 19 00 40 movl $0x40,0x19a2e4(%edx)
10159b: 00 00 00
10159e: 83 c1 40 add $0x40,%ecx
1015a1: 83 c2 34 add $0x34,%edx
1015a4: 48 dec %eax
1015a5: 79 e7 jns 10158e <init_keyboard+0x12>
}
for(i = 0; i < 128; i++)
1015a7: 31 c0 xor %eax,%eax
1015a9: 8d 76 00 lea 0x0(%esi),%esi
keys[i] = 0;
1015ac: c7 04 85 40 83 10 00 movl $0x0,0x108340(,%eax,4)
1015b3: 00 00 00 00
1015b7: 40 inc %eax
1015b8: 83 f8 7f cmp $0x7f,%eax
1015bb: 7e ef jle 1015ac <init_keyboard+0x30>
makebreak = 0;
//klog(NULL, K_KLOG_SUCCESS, &_vc[0], NULL);
//kprintf("init_kbd: %u buffers, %u bytes each\n",
// MAX_VC, KBD_BUF_SIZE);
//kprintf("[ Entering Runlevel 0 ].......................................................Ok");
_vc[0].attrib = 8;
printf("[ ");
1015bd: 83 ec 0c sub $0xc,%esp
1015c0: 68 b6 51 10 00 push $0x1051b6
1015c5: c7 05 a0 85 10 00 00 movl $0x0,0x1085a0
1015cc: 00 00 00
1015cf: c7 05 f8 a2 19 00 08 movl $0x8,0x19a2f8
1015d6: 00 00 00
1015d9: e8 f6 3a 00 00 call 1050d4 <printf>
_vc[0].attrib = 15;
printf("init: keyboard %2u buf, %2ub each ", MAX_VC, KBD_BUF_SIZE);
1015de: 83 c4 0c add $0xc,%esp
1015e1: 6a 40 push $0x40
1015e3: 6a 0c push $0xc
1015e5: 68 60 58 10 00 push $0x105860
1015ea: c7 05 f8 a2 19 00 0f movl $0xf,0x19a2f8
1015f1: 00 00 00
1015f4: e8 db 3a 00 00 call 1050d4 <printf>
_vc[0].attrib = 8;
printf("]...........................................");
1015f9: c7 04 24 a0 58 10 00 movl $0x1058a0,(%esp,1)
101600: c7 05 f8 a2 19 00 08 movl $0x8,0x19a2f8
101607: 00 00 00
10160a: e8 c5 3a 00 00 call 1050d4 <printf>
_vc[0].attrib = 2;
printf("Ok");
10160f: c7 04 24 d9 54 10 00 movl $0x1054d9,(%esp,1)
101616: c7 05 f8 a2 19 00 02 movl $0x2,0x19a2f8
10161d: 00 00 00
101620: e8 af 3a 00 00 call 1050d4 <printf>
_vc[0].attrib = 7;
101625: c7 05 f8 a2 19 00 07 movl $0x7,0x19a2f8
10162c: 00 00 00
}
10162f: c9 leave
101630: c3 ret
...
00101640 <entry>:
101640: a1 00 70 10 00 mov 0x107000,%eax
101645: 3d 2a da 44 35 cmp $0x3544da2a,%eax
10164a: 74 0b je 101657 <ds_ok>
10164c: 66 c7 05 00 80 0b 00 movw $0x9f44,0xb8000
101653: 44 9f
101655: eb fe jmp 101655 <entry+0x15>
00101657 <ds_ok>:
101657: 0f 01 15 24 70 10 00 lgdtl 0x107024
10165e: 66 b8 10 00 mov $0x10,%ax
101662: 8e d8 mov %eax,%ds
101664: 8e c0 mov %eax,%es
101666: 8e d0 mov %eax,%ss
101668: 8e e0 mov %eax,%fs
10166a: 8e e8 mov %eax,%gs
10166c: ea 73 16 10 00 18 00 ljmp $0x18,$0x101673
00101673 <sbat>:
101673: bf 00 80 10 00 mov $0x108000,%edi
101678: b9 00 b0 19 00 mov $0x19b000,%ecx
10167d: 29 f9 sub %edi,%ecx
10167f: 31 c0 xor %eax,%eax
101681: f3 aa repz stos %al,%es:(%edi)
101683: bc a4 95 10 00 mov $0x1095a4,%esp
101688: b9 00 01 00 00 mov $0x100,%ecx
10168d: bf 2a 70 10 00 mov $0x10702a,%edi
101692: be 6b 17 10 00 mov $0x10176b,%esi
00101697 <do_idt>:
101697: 89 f0 mov %esi,%eax
101699: 66 89 07 mov %ax,(%edi)
10169c: c1 e8 10 shr $0x10,%eax
10169f: 66 89 47 06 mov %ax,0x6(%edi)
1016a3: 81 c7 08 00 00 00 add $0x8,%edi
1016a9: 81 c6 26 00 00 00 add $0x26,%esi
1016af: e2 e6 loop 101697 <do_idt>
1016b1: 0f 01 1d 2a 78 10 00 lidtl 0x10782a
1016b8: 68 02 00 00 00 push $0x2
1016bd: 9d popf
1016be: e8 61 2c 00 00 call 104324 <main>
1016c3: eb fe jmp 1016c3 <do_idt+0x2c>
1016c5: 90 nop
1016c6: 90 nop
1016c7: 90 nop
001016c8 <mboot>:
1016c8: 02 b0 ad 1b 03 00 add 0x31bad(%eax),%dh
1016ce: 01 00 add %eax,(%eax)
1016d0: fb sti
1016d1: 4f dec %edi
1016d2: 51 push %ecx
1016d3: e4 c8 in $0xc8,%al
1016d5: 16 push %ss
1016d6: 10 00 adc %al,(%eax)
1016d8: 00 00 add %al,(%eax)
1016da: 10 00 adc %al,(%eax)
1016dc: 00 80 10 00 00 b0 add %al,0xb0000010(%eax)
1016e2: 19 00 sbb %eax,(%eax)
1016e4: 40 inc %eax
1016e5: 16 push %ss
1016e6: 10 00 adc %al,(%eax)
001016e8 <all_ints>:
1016e8: 58 pop %eax
1016e9: 61 popa
1016ea: 1f pop %ds
1016eb: 07 pop %es
1016ec: 0f a1 pop %fs
1016ee: 0f a9 pop %gs
1016f0: 81 c4 08 00 00 00 add $0x8,%esp
1016f6: cf iret
001016f7 <_getvect>:
1016f7: 55 push %ebp
1016f8: 89 e5 mov %esp,%ebp
1016fa: 56 push %esi
1016fb: 53 push %ebx
1016fc: 8b 75 08 mov 0x8(%ebp),%esi
1016ff: 31 db xor %ebx,%ebx
101701: 8a 5d 0c mov 0xc(%ebp),%bl
101704: c1 e3 03 shl $0x3,%ebx
101707: 8a 83 2f 70 10 00 mov 0x10702f(%ebx),%al
10170d: 89 06 mov %eax,(%esi)
10170f: b8 91 17 10 00 mov $0x101791,%eax
101714: 2d 6b 17 10 00 sub $0x10176b,%eax
101719: f6 65 0c mulb 0xc(%ebp)
10171c: 89 c3 mov %eax,%ebx
10171e: 81 c3 6b 17 10 00 add $0x10176b,%ebx
101724: 8b 83 1b 00 00 00 mov 0x1b(%ebx),%eax
10172a: 89 46 04 mov %eax,0x4(%esi)
10172d: 5b pop %ebx
10172e: 5e pop %esi
10172f: 5d pop %ebp
101730: c3 ret
00101731 <_setvect>:
101731: 55 push %ebp
101732: 89 e5 mov %esp,%ebp
101734: 56 push %esi
101735: 53 push %ebx
101736: 8b 75 08 mov 0x8(%ebp),%esi
101739: 8b 06 mov (%esi),%eax
10173b: 31 db xor %ebx,%ebx
10173d: 8a 5d 0c mov 0xc(%ebp),%bl
101740: c1 e3 03 shl $0x3,%ebx
101743: 88 83 2f 70 10 00 mov %al,0x10702f(%ebx)
101749: b8 91 17 10 00 mov $0x101791,%eax
10174e: 2d 6b 17 10 00 sub $0x10176b,%eax
101753: f6 65 0c mulb 0xc(%ebp)
101756: 89 c3 mov %eax,%ebx
101758: 81 c3 6b 17 10 00 add $0x10176b,%ebx
10175e: 8b 46 04 mov 0x4(%esi),%eax
101761: 89 83 1b 00 00 00 mov %eax,0x1b(%ebx)
101767: 5b pop %ebx
101768: 5e pop %esi
101769: 5d pop %ebp
10176a: c3 ret
0010176b <isr0>:
10176b: 6a 00 push $0x0
10176d: 6a 00 push $0x0
10176f: 0f a8 push %gs
101771: 0f a0 push %fs
101773: 06 push %es
101774: 1e push %ds
101775: 60 pusha
101776: 66 b8 10 00 mov $0x10,%ax
10177a: 8e d8 mov %eax,%ds
10177c: 8e c0 mov %eax,%es
10177e: 8e e0 mov %eax,%fs
101780: 8e e8 mov %eax,%gs
101782: 89 e0 mov %esp,%eax
101784: 50 push %eax
00101785 <isr0.1>:
101785: b8 04 3e 10 00 mov $0x103e04,%eax
10178a: ff d0 call *%eax
10178c: e9 57 ff ff ff jmp 1016e8 <all_ints>
00101791 <isr1>:
101791: 6a 00 push $0x0
101793: 6a 01 push $0x1
101795: 0f a8 push %gs
101797: 0f a0 push %fs
101799: 06 push %es
10179a: 1e push %ds
10179b: 60 pusha
10179c: 66 b8 10 00 mov $0x10,%ax
1017a0: 8e d8 mov %eax,%ds
1017a2: 8e c0 mov %eax,%es
1017a4: 8e e0 mov %eax,%fs
1017a6: 8e e8 mov %eax,%gs
1017a8: 89 e0 mov %esp,%eax
1017aa: 50 push %eax
001017ab <isr1.1>:
1017ab: b8 04 3e 10 00 mov $0x103e04,%eax
1017b0: ff d0 call *%eax
1017b2: e9 31 ff ff ff jmp 1016e8 <all_ints>
001017b7 <isr2>:
1017b7: 6a 00 push $0x0
1017b9: 6a 02 push $0x2
1017bb: 0f a8 push %gs
1017bd: 0f a0 push %fs
1017bf: 06 push %es
1017c0: 1e push %ds
1017c1: 60 pusha
1017c2: 66 b8 10 00 mov $0x10,%ax
1017c6: 8e d8 mov %eax,%ds
1017c8: 8e c0 mov %eax,%es
1017ca: 8e e0 mov %eax,%fs
1017cc: 8e e8 mov %eax,%gs
1017ce: 89 e0 mov %esp,%eax
1017d0: 50 push %eax
001017d1 <isr2.1>:
1017d1: b8 04 3e 10 00 mov $0x103e04,%eax
1017d6: ff d0 call *%eax
1017d8: e9 0b ff ff ff jmp 1016e8 <all_ints>
001017dd <isr3>:
1017dd: 6a 00 push $0x0
1017df: 6a 03 push $0x3
1017e1: 0f a8 push %gs
1017e3: 0f a0 push %fs
1017e5: 06 push %es
1017e6: 1e push %ds
1017e7: 60 pusha
1017e8: 66 b8 10 00 mov $0x10,%ax
1017ec: 8e d8 mov %eax,%ds
1017ee: 8e c0 mov %eax,%es
1017f0: 8e e0 mov %eax,%fs
1017f2: 8e e8 mov %eax,%gs
1017f4: 89 e0 mov %esp,%eax
1017f6: 50 push %eax
001017f7 <isr3.1>:
1017f7: b8 04 3e 10 00 mov $0x103e04,%eax
1017fc: ff d0 call *%eax
1017fe: e9 e5 fe ff ff jmp 1016e8 <all_ints>
00101803 <isr4>:
101803: 6a 00 push $0x0
101805: 6a 04 push $0x4
101807: 0f a8 push %gs
101809: 0f a0 push %fs
10180b: 06 push %es
10180c: 1e push %ds
10180d: 60 pusha
10180e: 66 b8 10 00 mov $0x10,%ax
101812: 8e d8 mov %eax,%ds
101814: 8e c0 mov %eax,%es
101816: 8e e0 mov %eax,%fs
101818: 8e e8 mov %eax,%gs
10181a: 89 e0 mov %esp,%eax
10181c: 50 push %eax
0010181d <isr4.1>:
10181d: b8 04 3e 10 00 mov $0x103e04,%eax
101822: ff d0 call *%eax
101824: e9 bf fe ff ff jmp 1016e8 <all_ints>
00101829 <isr5>:
101829: 6a 00 push $0x0
10182b: 6a 05 push $0x5
10182d: 0f a8 push %gs
10182f: 0f a0 push %fs
101831: 06 push %es
101832: 1e push %ds
101833: 60 pusha
101834: 66 b8 10 00 mov $0x10,%ax
101838: 8e d8 mov %eax,%ds
10183a: 8e c0 mov %eax,%es
10183c: 8e e0 mov %eax,%fs
10183e: 8e e8 mov %eax,%gs
101840: 89 e0 mov %esp,%eax
101842: 50 push %eax
00101843 <isr5.1>:
101843: b8 04 3e 10 00 mov $0x103e04,%eax
101848: ff d0 call *%eax
10184a: e9 99 fe ff ff jmp 1016e8 <all_ints>
0010184f <isr6>:
10184f: 6a 00 push $0x0
101851: 6a 06 push $0x6
101853: 0f a8 push %gs
101855: 0f a0 push %fs
101857: 06 push %es
101858: 1e push %ds
101859: 60 pusha
10185a: 66 b8 10 00 mov $0x10,%ax
10185e: 8e d8 mov %eax,%ds
101860: 8e c0 mov %eax,%es
101862: 8e e0 mov %eax,%fs
101864: 8e e8 mov %eax,%gs
101866: 89 e0 mov %esp,%eax
101868: 50 push %eax
00101869 <isr6.1>:
101869: b8 04 3e 10 00 mov $0x103e04,%eax
10186e: ff d0 call *%eax
101870: e9 73 fe ff ff jmp 1016e8 <all_ints>
00101875 <isr7>:
101875: 6a 00 push $0x0
101877: 6a 07 push $0x7
101879: 0f a8 push %gs
10187b: 0f a0 push %fs
10187d: 06 push %es
10187e: 1e push %ds
10187f: 60 pusha
101880: 66 b8 10 00 mov $0x10,%ax
101884: 8e d8 mov %eax,%ds
101886: 8e c0 mov %eax,%es
101888: 8e e0 mov %eax,%fs
10188a: 8e e8 mov %eax,%gs
10188c: 89 e0 mov %esp,%eax
10188e: 50 push %eax
0010188f <isr7.1>:
10188f: b8 04 3e 10 00 mov $0x103e04,%eax
101894: ff d0 call *%eax
101896: e9 4d fe ff ff jmp 1016e8 <all_ints>
0010189b <isr8>:
10189b: 90 nop
10189c: 90 nop
10189d: 6a 08 push $0x8
10189f: 0f a8 push %gs
1018a1: 0f a0 push %fs
1018a3: 06 push %es
1018a4: 1e push %ds
1018a5: 60 pusha
1018a6: 66 b8 10 00 mov $0x10,%ax
1018aa: 8e d8 mov %eax,%ds
1018ac: 8e c0 mov %eax,%es
1018ae: 8e e0 mov %eax,%fs
1018b0: 8e e8 mov %eax,%gs
1018b2: 89 e0 mov %esp,%eax
1018b4: 50 push %eax
001018b5 <isr8.1>:
1018b5: b8 04 3e 10 00 mov $0x103e04,%eax
1018ba: ff d0 call *%eax
1018bc: e9 27 fe ff ff jmp 1016e8 <all_ints>
001018c1 <isr9>:
1018c1: 6a 00 push $0x0
1018c3: 6a 09 push $0x9
1018c5: 0f a8 push %gs
1018c7: 0f a0 push %fs
1018c9: 06 push %es
1018ca: 1e push %ds
1018cb: 60 pusha
1018cc: 66 b8 10 00 mov $0x10,%ax
1018d0: 8e d8 mov %eax,%ds
1018d2: 8e c0 mov %eax,%es
1018d4: 8e e0 mov %eax,%fs
1018d6: 8e e8 mov %eax,%gs
1018d8: 89 e0 mov %esp,%eax
1018da: 50 push %eax
001018db <isr9.1>:
1018db: b8 04 3e 10 00 mov $0x103e04,%eax
1018e0: ff d0 call *%eax
1018e2: e9 01 fe ff ff jmp 1016e8 <all_ints>
001018e7 <isr0Ah>:
1018e7: 90 nop
1018e8: 90 nop
1018e9: 6a 0a push $0xa
1018eb: 0f a8 push %gs
1018ed: 0f a0 push %fs
1018ef: 06 push %es
1018f0: 1e push %ds
1018f1: 60 pusha
1018f2: 66 b8 10 00 mov $0x10,%ax
1018f6: 8e d8 mov %eax,%ds
1018f8: 8e c0 mov %eax,%es
1018fa: 8e e0 mov %eax,%fs
1018fc: 8e e8 mov %eax,%gs
1018fe: 89 e0 mov %esp,%eax
101900: 50 push %eax
00101901 <isr0Ah.1>:
101901: b8 04 3e 10 00 mov $0x103e04,%eax
101906: ff d0 call *%eax
101908: e9 db fd ff ff jmp 1016e8 <all_ints>
0010190d <isr0Bh>:
10190d: 90 nop
10190e: 90 nop
10190f: 6a 0b push $0xb
101911: 0f a8 push %gs
101913: 0f a0 push %fs
101915: 06 push %es
101916: 1e push %ds
101917: 60 pusha
101918: 66 b8 10 00 mov $0x10,%ax
10191c: 8e d8 mov %eax,%ds
10191e: 8e c0 mov %eax,%es
101920: 8e e0 mov %eax,%fs
101922: 8e e8 mov %eax,%gs
101924: 89 e0 mov %esp,%eax
101926: 50 push %eax
00101927 <isr0Bh.1>:
101927: b8 04 3e 10 00 mov $0x103e04,%eax
10192c: ff d0 call *%eax
10192e: e9 b5 fd ff ff jmp 1016e8 <all_ints>
00101933 <isr0Ch>:
101933: 90 nop
101934: 90 nop
101935: 6a 0c push $0xc
101937: 0f a8 push %gs
101939: 0f a0 push %fs
10193b: 06 push %es
10193c: 1e push %ds
10193d: 60 pusha
10193e: 66 b8 10 00 mov $0x10,%ax
101942: 8e d8 mov %eax,%ds
101944: 8e c0 mov %eax,%es
101946: 8e e0 mov %eax,%fs
101948: 8e e8 mov %eax,%gs
10194a: 89 e0 mov %esp,%eax
10194c: 50 push %eax
0010194d <isr0Ch.1>:
10194d: b8 04 3e 10 00 mov $0x103e04,%eax
101952: ff d0 call *%eax
101954: e9 8f fd ff ff jmp 1016e8 <all_ints>
00101959 <isr0Dh>:
101959: 90 nop
10195a: 90 nop
10195b: 6a 0d push $0xd
10195d: 0f a8 push %gs
10195f: 0f a0 push %fs
101961: 06 push %es
101962: 1e push %ds
101963: 60 pusha
101964: 66 b8 10 00 mov $0x10,%ax
101968: 8e d8 mov %eax,%ds
10196a: 8e c0 mov %eax,%es
10196c: 8e e0 mov %eax,%fs
10196e: 8e e8 mov %eax,%gs
101970: 89 e0 mov %esp,%eax
101972: 50 push %eax
00101973 <isr0Dh.1>:
101973: b8 04 3e 10 00 mov $0x103e04,%eax
101978: ff d0 call *%eax
10197a: e9 69 fd ff ff jmp 1016e8 <all_ints>
0010197f <isr0Eh>:
10197f: 90 nop
101980: 90 nop
101981: 6a 0e push $0xe
101983: 0f a8 push %gs
101985: 0f a0 push %fs
101987: 06 push %es
101988: 1e push %ds
101989: 60 pusha
10198a: 66 b8 10 00 mov $0x10,%ax
10198e: 8e d8 mov %eax,%ds
101990: 8e c0 mov %eax,%es
101992: 8e e0 mov %eax,%fs
101994: 8e e8 mov %eax,%gs
101996: 89 e0 mov %esp,%eax
101998: 50 push %eax
00101999 <isr0Eh.1>:
101999: b8 04 3e 10 00 mov $0x103e04,%eax
10199e: ff d0 call *%eax
1019a0: e9 43 fd ff ff jmp 1016e8 <all_ints>
001019a5 <isr0Fh>:
1019a5: 6a 00 push $0x0
1019a7: 6a 0f push $0xf
1019a9: 0f a8 push %gs
1019ab: 0f a0 push %fs
1019ad: 06 push %es
1019ae: 1e push %ds
1019af: 60 pusha
1019b0: 66 b8 10 00 mov $0x10,%ax
1019b4: 8e d8 mov %eax,%ds
1019b6: 8e c0 mov %eax,%es
1019b8: 8e e0 mov %eax,%fs
1019ba: 8e e8 mov %eax,%gs
1019bc: 89 e0 mov %esp,%eax
1019be: 50 push %eax
001019bf <isr0Fh.1>:
1019bf: b8 04 3e 10 00 mov $0x103e04,%eax
1019c4: ff d0 call *%eax
1019c6: e9 1d fd ff ff jmp 1016e8 <all_ints>
001019cb <isr10h>:
1019cb: 6a 00 push $0x0
1019cd: 6a 10 push $0x10
1019cf: 0f a8 push %gs
1019d1: 0f a0 push %fs
1019d3: 06 push %es
1019d4: 1e push %ds
1019d5: 60 pusha
1019d6: 66 b8 10 00 mov $0x10,%ax
1019da: 8e d8 mov %eax,%ds
1019dc: 8e c0 mov %eax,%es
1019de: 8e e0 mov %eax,%fs
1019e0: 8e e8 mov %eax,%gs
1019e2: 89 e0 mov %esp,%eax
1019e4: 50 push %eax
001019e5 <isr10h.1>:
1019e5: b8 04 3e 10 00 mov $0x103e04,%eax
1019ea: ff d0 call *%eax
1019ec: e9 f7 fc ff ff jmp 1016e8 <all_ints>
001019f1 <isr11h>:
1019f1: 6a 00 push $0x0
1019f3: 6a 11 push $0x11
1019f5: 0f a8 push %gs
1019f7: 0f a0 push %fs
1019f9: 06 push %es
1019fa: 1e push %ds
1019fb: 60 pusha
1019fc: 66 b8 10 00 mov $0x10,%ax
101a00: 8e d8 mov %eax,%ds
101a02: 8e c0 mov %eax,%es
101a04: 8e e0 mov %eax,%fs
101a06: 8e e8 mov %eax,%gs
101a08: 89 e0 mov %esp,%eax
101a0a: 50 push %eax
00101a0b <isr11h.1>:
101a0b: b8 04 3e 10 00 mov $0x103e04,%eax
101a10: ff d0 call *%eax
101a12: e9 d1 fc ff ff jmp 1016e8 <all_ints>
00101a17 <isr12h>:
101a17: 6a 00 push $0x0
101a19: 6a 12 push $0x12
101a1b: 0f a8 push %gs
101a1d: 0f a0 push %fs
101a1f: 06 push %es
101a20: 1e push %ds
101a21: 60 pusha
101a22: 66 b8 10 00 mov $0x10,%ax
101a26: 8e d8 mov %eax,%ds
101a28: 8e c0 mov %eax,%es
101a2a: 8e e0 mov %eax,%fs
101a2c: 8e e8 mov %eax,%gs
101a2e: 89 e0 mov %esp,%eax
101a30: 50 push %eax
00101a31 <isr12h.1>:
101a31: b8 04 3e 10 00 mov $0x103e04,%eax
101a36: ff d0 call *%eax
101a38: e9 ab fc ff ff jmp 1016e8 <all_ints>
00101a3d <isr13h>:
101a3d: 6a 00 push $0x0
101a3f: 6a 13 push $0x13
101a41: 0f a8 push %gs
101a43: 0f a0 push %fs
101a45: 06 push %es
101a46: 1e push %ds
101a47: 60 pusha
101a48: 66 b8 10 00 mov $0x10,%ax
101a4c: 8e d8 mov %eax,%ds
101a4e: 8e c0 mov %eax,%es
101a50: 8e e0 mov %eax,%fs
101a52: 8e e8 mov %eax,%gs
101a54: 89 e0 mov %esp,%eax
101a56: 50 push %eax
00101a57 <isr13h.1>:
101a57: b8 04 3e 10 00 mov $0x103e04,%eax
101a5c: ff d0 call *%eax
101a5e: e9 85 fc ff ff jmp 1016e8 <all_ints>
00101a63 <isr14h>:
101a63: 6a 00 push $0x0
101a65: 6a 14 push $0x14
101a67: 0f a8 push %gs
101a69: 0f a0 push %fs
101a6b: 06 push %es
101a6c: 1e push %ds
101a6d: 60 pusha
101a6e: 66 b8 10 00 mov $0x10,%ax
101a72: 8e d8 mov %eax,%ds
101a74: 8e c0 mov %eax,%es
101a76: 8e e0 mov %eax,%fs
101a78: 8e e8 mov %eax,%gs
101a7a: 89 e0 mov %esp,%eax
101a7c: 50 push %eax
00101a7d <isr14h.1>:
101a7d: b8 04 3e 10 00 mov $0x103e04,%eax
101a82: ff d0 call *%eax
101a84: e9 5f fc ff ff jmp 1016e8 <all_ints>
00101a89 <isr15h>:
101a89: 6a 00 push $0x0
101a8b: 6a 15 push $0x15
101a8d: 0f a8 push %gs
101a8f: 0f a0 push %fs
101a91: 06 push %es
101a92: 1e push %ds
101a93: 60 pusha
101a94: 66 b8 10 00 mov $0x10,%ax
101a98: 8e d8 mov %eax,%ds
101a9a: 8e c0 mov %eax,%es
101a9c: 8e e0 mov %eax,%fs
101a9e: 8e e8 mov %eax,%gs
101aa0: 89 e0 mov %esp,%eax
101aa2: 50 push %eax
00101aa3 <isr15h.1>:
101aa3: b8 04 3e 10 00 mov $0x103e04,%eax
101aa8: ff d0 call *%eax
101aaa: e9 39 fc ff ff jmp 1016e8 <all_ints>
00101aaf <isr16h>:
101aaf: 6a 00 push $0x0
101ab1: 6a 16 push $0x16
101ab3: 0f a8 push %gs
101ab5: 0f a0 push %fs
101ab7: 06 push %es
101ab8: 1e push %ds
101ab9: 60 pusha
101aba: 66 b8 10 00 mov $0x10,%ax
101abe: 8e d8 mov %eax,%ds
101ac0: 8e c0 mov %eax,%es
101ac2: 8e e0 mov %eax,%fs
101ac4: 8e e8 mov %eax,%gs
101ac6: 89 e0 mov %esp,%eax
101ac8: 50 push %eax
00101ac9 <isr16h.1>:
101ac9: b8 04 3e 10 00 mov $0x103e04,%eax
101ace: ff d0 call *%eax
101ad0: e9 13 fc ff ff jmp 1016e8 <all_ints>
00101ad5 <isr17h>:
101ad5: 6a 00 push $0x0
101ad7: 6a 17 push $0x17
101ad9: 0f a8 push %gs
101adb: 0f a0 push %fs
101add: 06 push %es
101ade: 1e push %ds
101adf: 60 pusha
101ae0: 66 b8 10 00 mov $0x10,%ax
101ae4: 8e d8 mov %eax,%ds
101ae6: 8e c0 mov %eax,%es
101ae8: 8e e0 mov %eax,%fs
101aea: 8e e8 mov %eax,%gs
101aec: 89 e0 mov %esp,%eax
101aee: 50 push %eax
00101aef <isr17h.1>:
101aef: b8 04 3e 10 00 mov $0x103e04,%eax
101af4: ff d0 call *%eax
101af6: e9 ed fb ff ff jmp 1016e8 <all_ints>
00101afb <isr18h>:
101afb: 6a 00 push $0x0
101afd: 6a 18 push $0x18
101aff: 0f a8 push %gs
101b01: 0f a0 push %fs
101b03: 06 push %es
101b04: 1e push %ds
101b05: 60 pusha
101b06: 66 b8 10 00 mov $0x10,%ax
101b0a: 8e d8 mov %eax,%ds
101b0c: 8e c0 mov %eax,%es
101b0e: 8e e0 mov %eax,%fs
101b10: 8e e8 mov %eax,%gs
101b12: 89 e0 mov %esp,%eax
101b14: 50 push %eax
00101b15 <isr18h.1>:
101b15: b8 04 3e 10 00 mov $0x103e04,%eax
101b1a: ff d0 call *%eax
101b1c: e9 c7 fb ff ff jmp 1016e8 <all_ints>
00101b21 <isr19h>:
101b21: 6a 00 push $0x0
101b23: 6a 19 push $0x19
101b25: 0f a8 push %gs
101b27: 0f a0 push %fs
101b29: 06 push %es
101b2a: 1e push %ds
101b2b: 60 pusha
101b2c: 66 b8 10 00 mov $0x10,%ax
101b30: 8e d8 mov %eax,%ds
101b32: 8e c0 mov %eax,%es
101b34: 8e e0 mov %eax,%fs
101b36: 8e e8 mov %eax,%gs
101b38: 89 e0 mov %esp,%eax
101b3a: 50 push %eax
00101b3b <isr19h.1>:
101b3b: b8 04 3e 10 00 mov $0x103e04,%eax
101b40: ff d0 call *%eax
101b42: e9 a1 fb ff ff jmp 1016e8 <all_ints>
00101b47 <isr1Ah>:
101b47: 6a 00 push $0x0
101b49: 6a 1a push $0x1a
101b4b: 0f a8 push %gs
101b4d: 0f a0 push %fs
101b4f: 06 push %es
101b50: 1e push %ds
101b51: 60 pusha
101b52: 66 b8 10 00 mov $0x10,%ax
101b56: 8e d8 mov %eax,%ds
101b58: 8e c0 mov %eax,%es
101b5a: 8e e0 mov %eax,%fs
101b5c: 8e e8 mov %eax,%gs
101b5e: 89 e0 mov %esp,%eax
101b60: 50 push %eax
00101b61 <isr1Ah.1>:
101b61: b8 04 3e 10 00 mov $0x103e04,%eax
101b66: ff d0 call *%eax
101b68: e9 7b fb ff ff jmp 1016e8 <all_ints>
00101b6d <isr1Bh>:
101b6d: 6a 00 push $0x0
101b6f: 6a 1b push $0x1b
101b71: 0f a8 push %gs
101b73: 0f a0 push %fs
101b75: 06 push %es
101b76: 1e push %ds
101b77: 60 pusha
101b78: 66 b8 10 00 mov $0x10,%ax
101b7c: 8e d8 mov %eax,%ds
101b7e: 8e c0 mov %eax,%es
101b80: 8e e0 mov %eax,%fs
101b82: 8e e8 mov %eax,%gs
101b84: 89 e0 mov %esp,%eax
101b86: 50 push %eax
00101b87 <isr1Bh.1>:
101b87: b8 04 3e 10 00 mov $0x103e04,%eax
101b8c: ff d0 call *%eax
101b8e: e9 55 fb ff ff jmp 1016e8 <all_ints>
00101b93 <isr1Ch>:
101b93: 6a 00 push $0x0
101b95: 6a 1c push $0x1c
101b97: 0f a8 push %gs
101b99: 0f a0 push %fs
101b9b: 06 push %es
101b9c: 1e push %ds
101b9d: 60 pusha
101b9e: 66 b8 10 00 mov $0x10,%ax
101ba2: 8e d8 mov %eax,%ds
101ba4: 8e c0 mov %eax,%es
101ba6: 8e e0 mov %eax,%fs
101ba8: 8e e8 mov %eax,%gs
101baa: 89 e0 mov %esp,%eax
101bac: 50 push %eax
00101bad <isr1Ch.1>:
101bad: b8 04 3e 10 00 mov $0x103e04,%eax
101bb2: ff d0 call *%eax
101bb4: e9 2f fb ff ff jmp 1016e8 <all_ints>
00101bb9 <isr1Dh>:
101bb9: 6a 00 push $0x0
101bbb: 6a 1d push $0x1d
101bbd: 0f a8 push %gs
101bbf: 0f a0 push %fs
101bc1: 06 push %es
101bc2: 1e push %ds
101bc3: 60 pusha
101bc4: 66 b8 10 00 mov $0x10,%ax
101bc8: 8e d8 mov %eax,%ds
101bca: 8e c0 mov %eax,%es
101bcc: 8e e0 mov %eax,%fs
101bce: 8e e8 mov %eax,%gs
101bd0: 89 e0 mov %esp,%eax
101bd2: 50 push %eax
00101bd3 <isr1Dh.1>:
101bd3: b8 04 3e 10 00 mov $0x103e04,%eax
101bd8: ff d0 call *%eax
101bda: e9 09 fb ff ff jmp 1016e8 <all_ints>
00101bdf <isr1Eh>:
101bdf: 6a 00 push $0x0
101be1: 6a 1e push $0x1e
101be3: 0f a8 push %gs
101be5: 0f a0 push %fs
101be7: 06 push %es
101be8: 1e push %ds
101be9: 60 pusha
101bea: 66 b8 10 00 mov $0x10,%ax
101bee: 8e d8 mov %eax,%ds
101bf0: 8e c0 mov %eax,%es
101bf2: 8e e0 mov %eax,%fs
101bf4: 8e e8 mov %eax,%gs
101bf6: 89 e0 mov %esp,%eax
101bf8: 50 push %eax
00101bf9 <isr1Eh.1>:
101bf9: b8 04 3e 10 00 mov $0x103e04,%eax
101bfe: ff d0 call *%eax
101c00: e9 e3 fa ff ff jmp 1016e8 <all_ints>
00101c05 <isr1Fh>:
101c05: 6a 00 push $0x0
101c07: 6a 1f push $0x1f
101c09: 0f a8 push %gs
101c0b: 0f a0 push %fs
101c0d: 06 push %es
101c0e: 1e push %ds
101c0f: 60 pusha
101c10: 66 b8 10 00 mov $0x10,%ax
101c14: 8e d8 mov %eax,%ds
101c16: 8e c0 mov %eax,%es
101c18: 8e e0 mov %eax,%fs
101c1a: 8e e8 mov %eax,%gs
101c1c: 89 e0 mov %esp,%eax
101c1e: 50 push %eax
00101c1f <isr1Fh.1>:
101c1f: b8 04 3e 10 00 mov $0x103e04,%eax
101c24: ff d0 call *%eax
101c26: e9 bd fa ff ff jmp 1016e8 <all_ints>
00101c2b <isr20h>:
101c2b: 6a 00 push $0x0
101c2d: 6a 20 push $0x20
101c2f: 0f a8 push %gs
101c31: 0f a0 push %fs
101c33: 06 push %es
101c34: 1e push %ds
101c35: 60 pusha
101c36: 66 b8 10 00 mov $0x10,%ax
101c3a: 8e d8 mov %eax,%ds
101c3c: 8e c0 mov %eax,%es
101c3e: 8e e0 mov %eax,%fs
101c40: 8e e8 mov %eax,%gs
101c42: 89 e0 mov %esp,%eax
101c44: 50 push %eax
00101c45 <isr20h.1>:
101c45: b8 04 3e 10 00 mov $0x103e04,%eax
101c4a: ff d0 call *%eax
101c4c: e9 97 fa ff ff jmp 1016e8 <all_ints>
00101c51 <isr21h>:
101c51: 6a 00 push $0x0
101c53: 6a 21 push $0x21
101c55: 0f a8 push %gs
101c57: 0f a0 push %fs
101c59: 06 push %es
101c5a: 1e push %ds
101c5b: 60 pusha
101c5c: 66 b8 10 00 mov $0x10,%ax
101c60: 8e d8 mov %eax,%ds
101c62: 8e c0 mov %eax,%es
101c64: 8e e0 mov %eax,%fs
101c66: 8e e8 mov %eax,%gs
101c68: 89 e0 mov %esp,%eax
101c6a: 50 push %eax
00101c6b <isr21h.1>:
101c6b: b8 04 3e 10 00 mov $0x103e04,%eax
101c70: ff d0 call *%eax
101c72: e9 71 fa ff ff jmp 1016e8 <all_ints>
00101c77 <isr22h>:
101c77: 6a 00 push $0x0
101c79: 6a 22 push $0x22
101c7b: 0f a8 push %gs
101c7d: 0f a0 push %fs
101c7f: 06 push %es
101c80: 1e push %ds
101c81: 60 pusha
101c82: 66 b8 10 00 mov $0x10,%ax
101c86: 8e d8 mov %eax,%ds
101c88: 8e c0 mov %eax,%es
101c8a: 8e e0 mov %eax,%fs
101c8c: 8e e8 mov %eax,%gs
101c8e: 89 e0 mov %esp,%eax
101c90: 50 push %eax
00101c91 <isr22h.1>:
101c91: b8 04 3e 10 00 mov $0x103e04,%eax
101c96: ff d0 call *%eax
101c98: e9 4b fa ff ff jmp 1016e8 <all_ints>
00101c9d <isr23h>:
101c9d: 6a 00 push $0x0
101c9f: 6a 23 push $0x23
101ca1: 0f a8 push %gs
101ca3: 0f a0 push %fs
101ca5: 06 push %es
101ca6: 1e push %ds
101ca7: 60 pusha
101ca8: 66 b8 10 00 mov $0x10,%ax
101cac: 8e d8 mov %eax,%ds
101cae: 8e c0 mov %eax,%es
101cb0: 8e e0 mov %eax,%fs
101cb2: 8e e8 mov %eax,%gs
101cb4: 89 e0 mov %esp,%eax
101cb6: 50 push %eax
00101cb7 <isr23h.1>:
101cb7: b8 04 3e 10 00 mov $0x103e04,%eax
101cbc: ff d0 call *%eax
101cbe: e9 25 fa ff ff jmp 1016e8 <all_ints>
00101cc3 <isr24h>:
101cc3: 6a 00 push $0x0
101cc5: 6a 24 push $0x24
101cc7: 0f a8 push %gs
101cc9: 0f a0 push %fs
101ccb: 06 push %es
101ccc: 1e push %ds
101ccd: 60 pusha
101cce: 66 b8 10 00 mov $0x10,%ax
101cd2: 8e d8 mov %eax,%ds
101cd4: 8e c0 mov %eax,%es
101cd6: 8e e0 mov %eax,%fs
101cd8: 8e e8 mov %eax,%gs
101cda: 89 e0 mov %esp,%eax
101cdc: 50 push %eax
00101cdd <isr24h.1>:
101cdd: b8 04 3e 10 00 mov $0x103e04,%eax
101ce2: ff d0 call *%eax
101ce4: e9 ff f9 ff ff jmp 1016e8 <all_ints>
00101ce9 <isr25h>:
101ce9: 6a 00 push $0x0
101ceb: 6a 25 push $0x25
101ced: 0f a8 push %gs
101cef: 0f a0 push %fs
101cf1: 06 push %es
101cf2: 1e push %ds
101cf3: 60 pusha
101cf4: 66 b8 10 00 mov $0x10,%ax
101cf8: 8e d8 mov %eax,%ds
101cfa: 8e c0 mov %eax,%es
101cfc: 8e e0 mov %eax,%fs
101cfe: 8e e8 mov %eax,%gs
101d00: 89 e0 mov %esp,%eax
101d02: 50 push %eax
00101d03 <isr25h.1>:
101d03: b8 04 3e 10 00 mov $0x103e04,%eax
101d08: ff d0 call *%eax
101d0a: e9 d9 f9 ff ff jmp 1016e8 <all_ints>
00101d0f <isr26h>:
101d0f: 6a 00 push $0x0
101d11: 6a 26 push $0x26
101d13: 0f a8 push %gs
101d15: 0f a0 push %fs
101d17: 06 push %es
101d18: 1e push %ds
101d19: 60 pusha
101d1a: 66 b8 10 00 mov $0x10,%ax
101d1e: 8e d8 mov %eax,%ds
101d20: 8e c0 mov %eax,%es
101d22: 8e e0 mov %eax,%fs
101d24: 8e e8 mov %eax,%gs
101d26: 89 e0 mov %esp,%eax
101d28: 50 push %eax
00101d29 <isr26h.1>:
101d29: b8 04 3e 10 00 mov $0x103e04,%eax
101d2e: ff d0 call *%eax
101d30: e9 b3 f9 ff ff jmp 1016e8 <all_ints>
00101d35 <isr27h>:
101d35: 6a 00 push $0x0
101d37: 6a 27 push $0x27
101d39: 0f a8 push %gs
101d3b: 0f a0 push %fs
101d3d: 06 push %es
101d3e: 1e push %ds
101d3f: 60 pusha
101d40: 66 b8 10 00 mov $0x10,%ax
101d44: 8e d8 mov %eax,%ds
101d46: 8e c0 mov %eax,%es
101d48: 8e e0 mov %eax,%fs
101d4a: 8e e8 mov %eax,%gs
101d4c: 89 e0 mov %esp,%eax
101d4e: 50 push %eax
00101d4f <isr27h.1>:
101d4f: b8 04 3e 10 00 mov $0x103e04,%eax
101d54: ff d0 call *%eax
101d56: e9 8d f9 ff ff jmp 1016e8 <all_ints>
00101d5b <isr28h>:
101d5b: 6a 00 push $0x0
101d5d: 6a 28 push $0x28
101d5f: 0f a8 push %gs
101d61: 0f a0 push %fs
101d63: 06 push %es
101d64: 1e push %ds
101d65: 60 pusha
101d66: 66 b8 10 00 mov $0x10,%ax
101d6a: 8e d8 mov %eax,%ds
101d6c: 8e c0 mov %eax,%es
101d6e: 8e e0 mov %eax,%fs
101d70: 8e e8 mov %eax,%gs
101d72: 89 e0 mov %esp,%eax
101d74: 50 push %eax
00101d75 <isr28h.1>:
101d75: b8 04 3e 10 00 mov $0x103e04,%eax
101d7a: ff d0 call *%eax
101d7c: e9 67 f9 ff ff jmp 1016e8 <all_ints>
00101d81 <isr29h>:
101d81: 6a 00 push $0x0
101d83: 6a 29 push $0x29
101d85: 0f a8 push %gs
101d87: 0f a0 push %fs
101d89: 06 push %es
101d8a: 1e push %ds
101d8b: 60 pusha
101d8c: 66 b8 10 00 mov $0x10,%ax
101d90: 8e d8 mov %eax,%ds
101d92: 8e c0 mov %eax,%es
101d94: 8e e0 mov %eax,%fs
101d96: 8e e8 mov %eax,%gs
101d98: 89 e0 mov %esp,%eax
101d9a: 50 push %eax
00101d9b <isr29h.1>:
101d9b: b8 04 3e 10 00 mov $0x103e04,%eax
101da0: ff d0 call *%eax
101da2: e9 41 f9 ff ff jmp 1016e8 <all_ints>
00101da7 <isr2Ah>:
101da7: 6a 00 push $0x0
101da9: 6a 2a push $0x2a
101dab: 0f a8 push %gs
101dad: 0f a0 push %fs
101daf: 06 push %es
101db0: 1e push %ds
101db1: 60 pusha
101db2: 66 b8 10 00 mov $0x10,%ax
101db6: 8e d8 mov %eax,%ds
101db8: 8e c0 mov %eax,%es
101dba: 8e e0 mov %eax,%fs
101dbc: 8e e8 mov %eax,%gs
101dbe: 89 e0 mov %esp,%eax
101dc0: 50 push %eax
00101dc1 <isr2Ah.1>:
101dc1: b8 04 3e 10 00 mov $0x103e04,%eax
101dc6: ff d0 call *%eax
101dc8: e9 1b f9 ff ff jmp 1016e8 <all_ints>
00101dcd <isr2Bh>:
101dcd: 6a 00 push $0x0
101dcf: 6a 2b push $0x2b
101dd1: 0f a8 push %gs
101dd3: 0f a0 push %fs
101dd5: 06 push %es
101dd6: 1e push %ds
101dd7: 60 pusha
101dd8: 66 b8 10 00 mov $0x10,%ax
101ddc: 8e d8 mov %eax,%ds
101dde: 8e c0 mov %eax,%es
101de0: 8e e0 mov %eax,%fs
101de2: 8e e8 mov %eax,%gs
101de4: 89 e0 mov %esp,%eax
101de6: 50 push %eax
00101de7 <isr2Bh.1>:
101de7: b8 04 3e 10 00 mov $0x103e04,%eax
101dec: ff d0 call *%eax
101dee: e9 f5 f8 ff ff jmp 1016e8 <all_ints>
00101df3 <isr2Ch>:
101df3: 6a 00 push $0x0
101df5: 6a 2c push $0x2c
101df7: 0f a8 push %gs
101df9: 0f a0 push %fs
101dfb: 06 push %es
101dfc: 1e push %ds
101dfd: 60 pusha
101dfe: 66 b8 10 00 mov $0x10,%ax
101e02: 8e d8 mov %eax,%ds
101e04: 8e c0 mov %eax,%es
101e06: 8e e0 mov %eax,%fs
101e08: 8e e8 mov %eax,%gs
101e0a: 89 e0 mov %esp,%eax
101e0c: 50 push %eax
00101e0d <isr2Ch.1>:
101e0d: b8 04 3e 10 00 mov $0x103e04,%eax
101e12: ff d0 call *%eax
101e14: e9 cf f8 ff ff jmp 1016e8 <all_ints>
00101e19 <isr2Dh>:
101e19: 6a 00 push $0x0
101e1b: 6a 2d push $0x2d
101e1d: 0f a8 push %gs
101e1f: 0f a0 push %fs
101e21: 06 push %es
101e22: 1e push %ds
101e23: 60 pusha
101e24: 66 b8 10 00 mov $0x10,%ax
101e28: 8e d8 mov %eax,%ds
101e2a: 8e c0 mov %eax,%es
101e2c: 8e e0 mov %eax,%fs
101e2e: 8e e8 mov %eax,%gs
101e30: 89 e0 mov %esp,%eax
101e32: 50 push %eax
00101e33 <isr2Dh.1>:
101e33: b8 04 3e 10 00 mov $0x103e04,%eax
101e38: ff d0 call *%eax
101e3a: e9 a9 f8 ff ff jmp 1016e8 <all_ints>
00101e3f <isr2Eh>:
101e3f: 6a 00 push $0x0
101e41: 6a 2e push $0x2e
101e43: 0f a8 push %gs
101e45: 0f a0 push %fs
101e47: 06 push %es
101e48: 1e push %ds
101e49: 60 pusha
101e4a: 66 b8 10 00 mov $0x10,%ax
101e4e: 8e d8 mov %eax,%ds
101e50: 8e c0 mov %eax,%es
101e52: 8e e0 mov %eax,%fs
101e54: 8e e8 mov %eax,%gs
101e56: 89 e0 mov %esp,%eax
101e58: 50 push %eax
00101e59 <isr2Eh.1>:
101e59: b8 04 3e 10 00 mov $0x103e04,%eax
101e5e: ff d0 call *%eax
101e60: e9 83 f8 ff ff jmp 1016e8 <all_ints>
00101e65 <isr2Fh>:
101e65: 6a 00 push $0x0
101e67: 6a 2f push $0x2f
101e69: 0f a8 push %gs
101e6b: 0f a0 push %fs
101e6d: 06 push %es
101e6e: 1e push %ds
101e6f: 60 pusha
101e70: 66 b8 10 00 mov $0x10,%ax
101e74: 8e d8 mov %eax,%ds
101e76: 8e c0 mov %eax,%es
101e78: 8e e0 mov %eax,%fs
101e7a: 8e e8 mov %eax,%gs
101e7c: 89 e0 mov %esp,%eax
101e7e: 50 push %eax
00101e7f <isr2Fh.1>:
101e7f: b8 04 3e 10 00 mov $0x103e04,%eax
101e84: ff d0 call *%eax
101e86: e9 5d f8 ff ff jmp 1016e8 <all_ints>
00101e8b <isr30h>:
101e8b: 6a 00 push $0x0
101e8d: 6a 30 push $0x30
101e8f: 0f a8 push %gs
101e91: 0f a0 push %fs
101e93: 06 push %es
101e94: 1e push %ds
101e95: 60 pusha
101e96: 66 b8 10 00 mov $0x10,%ax
101e9a: 8e d8 mov %eax,%ds
101e9c: 8e c0 mov %eax,%es
101e9e: 8e e0 mov %eax,%fs
101ea0: 8e e8 mov %eax,%gs
101ea2: 89 e0 mov %esp,%eax
101ea4: 50 push %eax
00101ea5 <isr30h.1>:
101ea5: b8 04 3e 10 00 mov $0x103e04,%eax
101eaa: ff d0 call *%eax
101eac: e9 37 f8 ff ff jmp 1016e8 <all_ints>
00101eb1 <isr49>:
101eb1: 6a 00 push $0x0
101eb3: 6a 31 push $0x31
101eb5: 0f a8 push %gs
101eb7: 0f a0 push %fs
101eb9: 06 push %es
101eba: 1e push %ds
101ebb: 60 pusha
101ebc: 66 b8 10 00 mov $0x10,%ax
101ec0: 8e d8 mov %eax,%ds
101ec2: 8e c0 mov %eax,%es
101ec4: 8e e0 mov %eax,%fs
101ec6: 8e e8 mov %eax,%gs
101ec8: 89 e0 mov %esp,%eax
101eca: 50 push %eax
00101ecb <isr49.1>:
101ecb: b8 04 3e 10 00 mov $0x103e04,%eax
101ed0: ff d0 call *%eax
101ed2: e9 11 f8 ff ff jmp 1016e8 <all_ints>
00101ed7 <isr50>:
101ed7: 6a 00 push $0x0
101ed9: 6a 32 push $0x32
101edb: 0f a8 push %gs
101edd: 0f a0 push %fs
101edf: 06 push %es
101ee0: 1e push %ds
101ee1: 60 pusha
101ee2: 66 b8 10 00 mov $0x10,%ax
101ee6: 8e d8 mov %eax,%ds
101ee8: 8e c0 mov %eax,%es
101eea: 8e e0 mov %eax,%fs
101eec: 8e e8 mov %eax,%gs
101eee: 89 e0 mov %esp,%eax
101ef0: 50 push %eax
00101ef1 <isr50.1>:
101ef1: b8 04 3e 10 00 mov $0x103e04,%eax
101ef6: ff d0 call *%eax
101ef8: e9 eb f7 ff ff jmp 1016e8 <all_ints>
00101efd <isr51>:
101efd: 6a 00 push $0x0
101eff: 6a 33 push $0x33
101f01: 0f a8 push %gs
101f03: 0f a0 push %fs
101f05: 06 push %es
101f06: 1e push %ds
101f07: 60 pusha
101f08: 66 b8 10 00 mov $0x10,%ax
101f0c: 8e d8 mov %eax,%ds
101f0e: 8e c0 mov %eax,%es
101f10: 8e e0 mov %eax,%fs
101f12: 8e e8 mov %eax,%gs
101f14: 89 e0 mov %esp,%eax
101f16: 50 push %eax
00101f17 <isr51.1>:
101f17: b8 04 3e 10 00 mov $0x103e04,%eax
101f1c: ff d0 call *%eax
101f1e: e9 c5 f7 ff ff jmp 1016e8 <all_ints>
00101f23 <isr52>:
101f23: 6a 00 push $0x0
101f25: 6a 34 push $0x34
101f27: 0f a8 push %gs
101f29: 0f a0 push %fs
101f2b: 06 push %es
101f2c: 1e push %ds
101f2d: 60 pusha
101f2e: 66 b8 10 00 mov $0x10,%ax
101f32: 8e d8 mov %eax,%ds
101f34: 8e c0 mov %eax,%es
101f36: 8e e0 mov %eax,%fs
101f38: 8e e8 mov %eax,%gs
101f3a: 89 e0 mov %esp,%eax
101f3c: 50 push %eax
00101f3d <isr52.1>:
101f3d: b8 04 3e 10 00 mov $0x103e04,%eax
101f42: ff d0 call *%eax
101f44: e9 9f f7 ff ff jmp 1016e8 <all_ints>
00101f49 <isr53>:
101f49: 6a 00 push $0x0
101f4b: 6a 35 push $0x35
101f4d: 0f a8 push %gs
101f4f: 0f a0 push %fs
101f51: 06 push %es
101f52: 1e push %ds
101f53: 60 pusha
101f54: 66 b8 10 00 mov $0x10,%ax
101f58: 8e d8 mov %eax,%ds
101f5a: 8e c0 mov %eax,%es
101f5c: 8e e0 mov %eax,%fs
101f5e: 8e e8 mov %eax,%gs
101f60: 89 e0 mov %esp,%eax
101f62: 50 push %eax
00101f63 <isr53.1>:
101f63: b8 04 3e 10 00 mov $0x103e04,%eax
101f68: ff d0 call *%eax
101f6a: e9 79 f7 ff ff jmp 1016e8 <all_ints>
00101f6f <isr54>:
101f6f: 6a 00 push $0x0
101f71: 6a 36 push $0x36
101f73: 0f a8 push %gs
101f75: 0f a0 push %fs
101f77: 06 push %es
101f78: 1e push %ds
101f79: 60 pusha
101f7a: 66 b8 10 00 mov $0x10,%ax
101f7e: 8e d8 mov %eax,%ds
101f80: 8e c0 mov %eax,%es
101f82: 8e e0 mov %eax,%fs
101f84: 8e e8 mov %eax,%gs
101f86: 89 e0 mov %esp,%eax
101f88: 50 push %eax
00101f89 <isr54.1>:
101f89: b8 04 3e 10 00 mov $0x103e04,%eax
101f8e: ff d0 call *%eax
101f90: e9 53 f7 ff ff jmp 1016e8 <all_ints>
00101f95 <isr55>:
101f95: 6a 00 push $0x0
101f97: 6a 37 push $0x37
101f99: 0f a8 push %gs
101f9b: 0f a0 push %fs
101f9d: 06 push %es
101f9e: 1e push %ds
101f9f: 60 pusha
101fa0: 66 b8 10 00 mov $0x10,%ax
101fa4: 8e d8 mov %eax,%ds
101fa6: 8e c0 mov %eax,%es
101fa8: 8e e0 mov %eax,%fs
101faa: 8e e8 mov %eax,%gs
101fac: 89 e0 mov %esp,%eax
101fae: 50 push %eax
00101faf <isr55.1>:
101faf: b8 04 3e 10 00 mov $0x103e04,%eax
101fb4: ff d0 call *%eax
101fb6: e9 2d f7 ff ff jmp 1016e8 <all_ints>
00101fbb <isr56>:
101fbb: 6a 00 push $0x0
101fbd: 6a 38 push $0x38
101fbf: 0f a8 push %gs
101fc1: 0f a0 push %fs
101fc3: 06 push %es
101fc4: 1e push %ds
101fc5: 60 pusha
101fc6: 66 b8 10 00 mov $0x10,%ax
101fca: 8e d8 mov %eax,%ds
101fcc: 8e c0 mov %eax,%es
101fce: 8e e0 mov %eax,%fs
101fd0: 8e e8 mov %eax,%gs
101fd2: 89 e0 mov %esp,%eax
101fd4: 50 push %eax
00101fd5 <isr56.1>:
101fd5: b8 04 3e 10 00 mov $0x103e04,%eax
101fda: ff d0 call *%eax
101fdc: e9 07 f7 ff ff jmp 1016e8 <all_ints>
00101fe1 <isr57>:
101fe1: 6a 00 push $0x0
101fe3: 6a 39 push $0x39
101fe5: 0f a8 push %gs
101fe7: 0f a0 push %fs
101fe9: 06 push %es
101fea: 1e push %ds
101feb: 60 pusha
101fec: 66 b8 10 00 mov $0x10,%ax
101ff0: 8e d8 mov %eax,%ds
101ff2: 8e c0 mov %eax,%es
101ff4: 8e e0 mov %eax,%fs
101ff6: 8e e8 mov %eax,%gs
101ff8: 89 e0 mov %esp,%eax
101ffa: 50 push %eax
00101ffb <isr57.1>:
101ffb: b8 04 3e 10 00 mov $0x103e04,%eax
102000: ff d0 call *%eax
102002: e9 e1 f6 ff ff jmp 1016e8 <all_ints>
00102007 <isr58>:
102007: 6a 00 push $0x0
102009: 6a 3a push $0x3a
10200b: 0f a8 push %gs
10200d: 0f a0 push %fs
10200f: 06 push %es
102010: 1e push %ds
102011: 60 pusha
102012: 66 b8 10 00 mov $0x10,%ax
102016: 8e d8 mov %eax,%ds
102018: 8e c0 mov %eax,%es
10201a: 8e e0 mov %eax,%fs
10201c: 8e e8 mov %eax,%gs
10201e: 89 e0 mov %esp,%eax
102020: 50 push %eax
00102021 <isr58.1>:
102021: b8 04 3e 10 00 mov $0x103e04,%eax
102026: ff d0 call *%eax
102028: e9 bb f6 ff ff jmp 1016e8 <all_ints>
0010202d <isr59>:
10202d: 6a 00 push $0x0
10202f: 6a 3b push $0x3b
102031: 0f a8 push %gs
102033: 0f a0 push %fs
102035: 06 push %es
102036: 1e push %ds
102037: 60 pusha
102038: 66 b8 10 00 mov $0x10,%ax
10203c: 8e d8 mov %eax,%ds
10203e: 8e c0 mov %eax,%es
102040: 8e e0 mov %eax,%fs
102042: 8e e8 mov %eax,%gs
102044: 89 e0 mov %esp,%eax
102046: 50 push %eax
00102047 <isr59.1>:
102047: b8 04 3e 10 00 mov $0x103e04,%eax
10204c: ff d0 call *%eax
10204e: e9 95 f6 ff ff jmp 1016e8 <all_ints>
00102053 <isr60>:
102053: 6a 00 push $0x0
102055: 6a 3c push $0x3c
102057: 0f a8 push %gs
102059: 0f a0 push %fs
10205b: 06 push %es
10205c: 1e push %ds
10205d: 60 pusha
10205e: 66 b8 10 00 mov $0x10,%ax
102062: 8e d8 mov %eax,%ds
102064: 8e c0 mov %eax,%es
102066: 8e e0 mov %eax,%fs
102068: 8e e8 mov %eax,%gs
10206a: 89 e0 mov %esp,%eax
10206c: 50 push %eax
0010206d <isr60.1>:
10206d: b8 04 3e 10 00 mov $0x103e04,%eax
102072: ff d0 call *%eax
102074: e9 6f f6 ff ff jmp 1016e8 <all_ints>
00102079 <isr61>:
102079: 6a 00 push $0x0
10207b: 6a 3d push $0x3d
10207d: 0f a8 push %gs
10207f: 0f a0 push %fs
102081: 06 push %es
102082: 1e push %ds
102083: 60 pusha
102084: 66 b8 10 00 mov $0x10,%ax
102088: 8e d8 mov %eax,%ds
10208a: 8e c0 mov %eax,%es
10208c: 8e e0 mov %eax,%fs
10208e: 8e e8 mov %eax,%gs
102090: 89 e0 mov %esp,%eax
102092: 50 push %eax
00102093 <isr61.1>:
102093: b8 04 3e 10 00 mov $0x103e04,%eax
102098: ff d0 call *%eax
10209a: e9 49 f6 ff ff jmp 1016e8 <all_ints>
0010209f <isr62>:
10209f: 6a 00 push $0x0
1020a1: 6a 3e push $0x3e
1020a3: 0f a8 push %gs
1020a5: 0f a0 push %fs
1020a7: 06 push %es
1020a8: 1e push %ds
1020a9: 60 pusha
1020aa: 66 b8 10 00 mov $0x10,%ax
1020ae: 8e d8 mov %eax,%ds
1020b0: 8e c0 mov %eax,%es
1020b2: 8e e0 mov %eax,%fs
1020b4: 8e e8 mov %eax,%gs
1020b6: 89 e0 mov %esp,%eax
1020b8: 50 push %eax
001020b9 <isr62.1>:
1020b9: b8 04 3e 10 00 mov $0x103e04,%eax
1020be: ff d0 call *%eax
1020c0: e9 23 f6 ff ff jmp 1016e8 <all_ints>
001020c5 <isr63>:
1020c5: 6a 00 push $0x0
1020c7: 6a 3f push $0x3f
1020c9: 0f a8 push %gs
1020cb: 0f a0 push %fs
1020cd: 06 push %es
1020ce: 1e push %ds
1020cf: 60 pusha
1020d0: 66 b8 10 00 mov $0x10,%ax
1020d4: 8e d8 mov %eax,%ds
1020d6: 8e c0 mov %eax,%es
1020d8: 8e e0 mov %eax,%fs
1020da: 8e e8 mov %eax,%gs
1020dc: 89 e0 mov %esp,%eax
1020de: 50 push %eax
001020df <isr63.1>:
1020df: b8 04 3e 10 00 mov $0x103e04,%eax
1020e4: ff d0 call *%eax
1020e6: e9 fd f5 ff ff jmp 1016e8 <all_ints>
001020eb <isr64>:
1020eb: 6a 00 push $0x0
1020ed: 6a 40 push $0x40
1020ef: 0f a8 push %gs
1020f1: 0f a0 push %fs
1020f3: 06 push %es
1020f4: 1e push %ds
1020f5: 60 pusha
1020f6: 66 b8 10 00 mov $0x10,%ax
1020fa: 8e d8 mov %eax,%ds
1020fc: 8e c0 mov %eax,%es
1020fe: 8e e0 mov %eax,%fs
102100: 8e e8 mov %eax,%gs
102102: 89 e0 mov %esp,%eax
102104: 50 push %eax
00102105 <isr64.1>:
102105: b8 04 3e 10 00 mov $0x103e04,%eax
10210a: ff d0 call *%eax
10210c: e9 d7 f5 ff ff jmp 1016e8 <all_ints>
00102111 <isr65>:
102111: 6a 00 push $0x0
102113: 6a 41 push $0x41
102115: 0f a8 push %gs
102117: 0f a0 push %fs
102119: 06 push %es
10211a: 1e push %ds
10211b: 60 pusha
10211c: 66 b8 10 00 mov $0x10,%ax
102120: 8e d8 mov %eax,%ds
102122: 8e c0 mov %eax,%es
102124: 8e e0 mov %eax,%fs
102126: 8e e8 mov %eax,%gs
102128: 89 e0 mov %esp,%eax
10212a: 50 push %eax
0010212b <isr65.1>:
10212b: b8 04 3e 10 00 mov $0x103e04,%eax
102130: ff d0 call *%eax
102132: e9 b1 f5 ff ff jmp 1016e8 <all_ints>
00102137 <isr66>:
102137: 6a 00 push $0x0
102139: 6a 42 push $0x42
10213b: 0f a8 push %gs
10213d: 0f a0 push %fs
10213f: 06 push %es
102140: 1e push %ds
102141: 60 pusha
102142: 66 b8 10 00 mov $0x10,%ax
102146: 8e d8 mov %eax,%ds
102148: 8e c0 mov %eax,%es
10214a: 8e e0 mov %eax,%fs
10214c: 8e e8 mov %eax,%gs
10214e: 89 e0 mov %esp,%eax
102150: 50 push %eax
00102151 <isr66.1>:
102151: b8 04 3e 10 00 mov $0x103e04,%eax
102156: ff d0 call *%eax
102158: e9 8b f5 ff ff jmp 1016e8 <all_ints>
0010215d <isr67>:
10215d: 6a 00 push $0x0
10215f: 6a 43 push $0x43
102161: 0f a8 push %gs
102163: 0f a0 push %fs
102165: 06 push %es
102166: 1e push %ds
102167: 60 pusha
102168: 66 b8 10 00 mov $0x10,%ax
10216c: 8e d8 mov %eax,%ds
10216e: 8e c0 mov %eax,%es
102170: 8e e0 mov %eax,%fs
102172: 8e e8 mov %eax,%gs
102174: 89 e0 mov %esp,%eax
102176: 50 push %eax
00102177 <isr67.1>:
102177: b8 04 3e 10 00 mov $0x103e04,%eax
10217c: ff d0 call *%eax
10217e: e9 65 f5 ff ff jmp 1016e8 <all_ints>
00102183 <isr68>:
102183: 6a 00 push $0x0
102185: 6a 44 push $0x44
102187: 0f a8 push %gs
102189: 0f a0 push %fs
10218b: 06 push %es
10218c: 1e push %ds
10218d: 60 pusha
10218e: 66 b8 10 00 mov $0x10,%ax
102192: 8e d8 mov %eax,%ds
102194: 8e c0 mov %eax,%es
102196: 8e e0 mov %eax,%fs
102198: 8e e8 mov %eax,%gs
10219a: 89 e0 mov %esp,%eax
10219c: 50 push %eax
0010219d <isr68.1>:
10219d: b8 04 3e 10 00 mov $0x103e04,%eax
1021a2: ff d0 call *%eax
1021a4: e9 3f f5 ff ff jmp 1016e8 <all_ints>
001021a9 <isr69>:
1021a9: 6a 00 push $0x0
1021ab: 6a 45 push $0x45
1021ad: 0f a8 push %gs
1021af: 0f a0 push %fs
1021b1: 06 push %es
1021b2: 1e push %ds
1021b3: 60 pusha
1021b4: 66 b8 10 00 mov $0x10,%ax
1021b8: 8e d8 mov %eax,%ds
1021ba: 8e c0 mov %eax,%es
1021bc: 8e e0 mov %eax,%fs
1021be: 8e e8 mov %eax,%gs
1021c0: 89 e0 mov %esp,%eax
1021c2: 50 push %eax
001021c3 <isr69.1>:
1021c3: b8 04 3e 10 00 mov $0x103e04,%eax
1021c8: ff d0 call *%eax
1021ca: e9 19 f5 ff ff jmp 1016e8 <all_ints>
001021cf <isr70>:
1021cf: 6a 00 push $0x0
1021d1: 6a 46 push $0x46
1021d3: 0f a8 push %gs
1021d5: 0f a0 push %fs
1021d7: 06 push %es
1021d8: 1e push %ds
1021d9: 60 pusha
1021da: 66 b8 10 00 mov $0x10,%ax
1021de: 8e d8 mov %eax,%ds
1021e0: 8e c0 mov %eax,%es
1021e2: 8e e0 mov %eax,%fs
1021e4: 8e e8 mov %eax,%gs
1021e6: 89 e0 mov %esp,%eax
1021e8: 50 push %eax
001021e9 <isr70.1>:
1021e9: b8 04 3e 10 00 mov $0x103e04,%eax
1021ee: ff d0 call *%eax
1021f0: e9 f3 f4 ff ff jmp 1016e8 <all_ints>
001021f5 <isr71>:
1021f5: 6a 00 push $0x0
1021f7: 6a 47 push $0x47
1021f9: 0f a8 push %gs
1021fb: 0f a0 push %fs
1021fd: 06 push %es
1021fe: 1e push %ds
1021ff: 60 pusha
102200: 66 b8 10 00 mov $0x10,%ax
102204: 8e d8 mov %eax,%ds
102206: 8e c0 mov %eax,%es
102208: 8e e0 mov %eax,%fs
10220a: 8e e8 mov %eax,%gs
10220c: 89 e0 mov %esp,%eax
10220e: 50 push %eax
0010220f <isr71.1>:
10220f: b8 04 3e 10 00 mov $0x103e04,%eax
102214: ff d0 call *%eax
102216: e9 cd f4 ff ff jmp 1016e8 <all_ints>
0010221b <isr72>:
10221b: 6a 00 push $0x0
10221d: 6a 48 push $0x48
10221f: 0f a8 push %gs
102221: 0f a0 push %fs
102223: 06 push %es
102224: 1e push %ds
102225: 60 pusha
102226: 66 b8 10 00 mov $0x10,%ax
10222a: 8e d8 mov %eax,%ds
10222c: 8e c0 mov %eax,%es
10222e: 8e e0 mov %eax,%fs
102230: 8e e8 mov %eax,%gs
102232: 89 e0 mov %esp,%eax
102234: 50 push %eax
00102235 <isr72.1>:
102235: b8 04 3e 10 00 mov $0x103e04,%eax
10223a: ff d0 call *%eax
10223c: e9 a7 f4 ff ff jmp 1016e8 <all_ints>
00102241 <isr73>:
102241: 6a 00 push $0x0
102243: 6a 49 push $0x49
102245: 0f a8 push %gs
102247: 0f a0 push %fs
102249: 06 push %es
10224a: 1e push %ds
10224b: 60 pusha
10224c: 66 b8 10 00 mov $0x10,%ax
102250: 8e d8 mov %eax,%ds
102252: 8e c0 mov %eax,%es
102254: 8e e0 mov %eax,%fs
102256: 8e e8 mov %eax,%gs
102258: 89 e0 mov %esp,%eax
10225a: 50 push %eax
0010225b <isr73.1>:
10225b: b8 04 3e 10 00 mov $0x103e04,%eax
102260: ff d0 call *%eax
102262: e9 81 f4 ff ff jmp 1016e8 <all_ints>
00102267 <isr74>:
102267: 6a 00 push $0x0
102269: 6a 4a push $0x4a
10226b: 0f a8 push %gs
10226d: 0f a0 push %fs
10226f: 06 push %es
102270: 1e push %ds
102271: 60 pusha
102272: 66 b8 10 00 mov $0x10,%ax
102276: 8e d8 mov %eax,%ds
102278: 8e c0 mov %eax,%es
10227a: 8e e0 mov %eax,%fs
10227c: 8e e8 mov %eax,%gs
10227e: 89 e0 mov %esp,%eax
102280: 50 push %eax
00102281 <isr74.1>:
102281: b8 04 3e 10 00 mov $0x103e04,%eax
102286: ff d0 call *%eax
102288: e9 5b f4 ff ff jmp 1016e8 <all_ints>
0010228d <isr75>:
10228d: 6a 00 push $0x0
10228f: 6a 4b push $0x4b
102291: 0f a8 push %gs
102293: 0f a0 push %fs
102295: 06 push %es
102296: 1e push %ds
102297: 60 pusha
102298: 66 b8 10 00 mov $0x10,%ax
10229c: 8e d8 mov %eax,%ds
10229e: 8e c0 mov %eax,%es
1022a0: 8e e0 mov %eax,%fs
1022a2: 8e e8 mov %eax,%gs
1022a4: 89 e0 mov %esp,%eax
1022a6: 50 push %eax
001022a7 <isr75.1>:
1022a7: b8 04 3e 10 00 mov $0x103e04,%eax
1022ac: ff d0 call *%eax
1022ae: e9 35 f4 ff ff jmp 1016e8 <all_ints>
001022b3 <isr76>:
1022b3: 6a 00 push $0x0
1022b5: 6a 4c push $0x4c
1022b7: 0f a8 push %gs
1022b9: 0f a0 push %fs
1022bb: 06 push %es
1022bc: 1e push %ds
1022bd: 60 pusha
1022be: 66 b8 10 00 mov $0x10,%ax
1022c2: 8e d8 mov %eax,%ds
1022c4: 8e c0 mov %eax,%es
1022c6: 8e e0 mov %eax,%fs
1022c8: 8e e8 mov %eax,%gs
1022ca: 89 e0 mov %esp,%eax
1022cc: 50 push %eax
001022cd <isr76.1>:
1022cd: b8 04 3e 10 00 mov $0x103e04,%eax
1022d2: ff d0 call *%eax
1022d4: e9 0f f4 ff ff jmp 1016e8 <all_ints>
001022d9 <isr77>:
1022d9: 6a 00 push $0x0
1022db: 6a 4d push $0x4d
1022dd: 0f a8 push %gs
1022df: 0f a0 push %fs
1022e1: 06 push %es
1022e2: 1e push %ds
1022e3: 60 pusha
1022e4: 66 b8 10 00 mov $0x10,%ax
1022e8: 8e d8 mov %eax,%ds
1022ea: 8e c0 mov %eax,%es
1022ec: 8e e0 mov %eax,%fs
1022ee: 8e e8 mov %eax,%gs
1022f0: 89 e0 mov %esp,%eax
1022f2: 50 push %eax
001022f3 <isr77.1>:
1022f3: b8 04 3e 10 00 mov $0x103e04,%eax
1022f8: ff d0 call *%eax
1022fa: e9 e9 f3 ff ff jmp 1016e8 <all_ints>
001022ff <isr78>:
1022ff: 6a 00 push $0x0
102301: 6a 4e push $0x4e
102303: 0f a8 push %gs
102305: 0f a0 push %fs
102307: 06 push %es
102308: 1e push %ds
102309: 60 pusha
10230a: 66 b8 10 00 mov $0x10,%ax
10230e: 8e d8 mov %eax,%ds
102310: 8e c0 mov %eax,%es
102312: 8e e0 mov %eax,%fs
102314: 8e e8 mov %eax,%gs
102316: 89 e0 mov %esp,%eax
102318: 50 push %eax
00102319 <isr78.1>:
102319: b8 04 3e 10 00 mov $0x103e04,%eax
10231e: ff d0 call *%eax
102320: e9 c3 f3 ff ff jmp 1016e8 <all_ints>
00102325 <isr79>:
102325: 6a 00 push $0x0
102327: 6a 4f push $0x4f
102329: 0f a8 push %gs
10232b: 0f a0 push %fs
10232d: 06 push %es
10232e: 1e push %ds
10232f: 60 pusha
102330: 66 b8 10 00 mov $0x10,%ax
102334: 8e d8 mov %eax,%ds
102336: 8e c0 mov %eax,%es
102338: 8e e0 mov %eax,%fs
10233a: 8e e8 mov %eax,%gs
10233c: 89 e0 mov %esp,%eax
10233e: 50 push %eax
0010233f <isr79.1>:
10233f: b8 04 3e 10 00 mov $0x103e04,%eax
102344: ff d0 call *%eax
102346: e9 9d f3 ff ff jmp 1016e8 <all_ints>
0010234b <isr80>:
10234b: 6a 00 push $0x0
10234d: 6a 50 push $0x50
10234f: 0f a8 push %gs
102351: 0f a0 push %fs
102353: 06 push %es
102354: 1e push %ds
102355: 60 pusha
102356: 66 b8 10 00 mov $0x10,%ax
10235a: 8e d8 mov %eax,%ds
10235c: 8e c0 mov %eax,%es
10235e: 8e e0 mov %eax,%fs
102360: 8e e8 mov %eax,%gs
102362: 89 e0 mov %esp,%eax
102364: 50 push %eax
00102365 <isr80.1>:
102365: b8 04 3e 10 00 mov $0x103e04,%eax
10236a: ff d0 call *%eax
10236c: e9 77 f3 ff ff jmp 1016e8 <all_ints>
00102371 <isr81>:
102371: 6a 00 push $0x0
102373: 6a 51 push $0x51
102375: 0f a8 push %gs
102377: 0f a0 push %fs
102379: 06 push %es
10237a: 1e push %ds
10237b: 60 pusha
10237c: 66 b8 10 00 mov $0x10,%ax
102380: 8e d8 mov %eax,%ds
102382: 8e c0 mov %eax,%es
102384: 8e e0 mov %eax,%fs
102386: 8e e8 mov %eax,%gs
102388: 89 e0 mov %esp,%eax
10238a: 50 push %eax
0010238b <isr81.1>:
10238b: b8 04 3e 10 00 mov $0x103e04,%eax
102390: ff d0 call *%eax
102392: e9 51 f3 ff ff jmp 1016e8 <all_ints>
00102397 <isr82>:
102397: 6a 00 push $0x0
102399: 6a 52 push $0x52
10239b: 0f a8 push %gs
10239d: 0f a0 push %fs
10239f: 06 push %es
1023a0: 1e push %ds
1023a1: 60 pusha
1023a2: 66 b8 10 00 mov $0x10,%ax
1023a6: 8e d8 mov %eax,%ds
1023a8: 8e c0 mov %eax,%es
1023aa: 8e e0 mov %eax,%fs
1023ac: 8e e8 mov %eax,%gs
1023ae: 89 e0 mov %esp,%eax
1023b0: 50 push %eax
001023b1 <isr82.1>:
1023b1: b8 04 3e 10 00 mov $0x103e04,%eax
1023b6: ff d0 call *%eax
1023b8: e9 2b f3 ff ff jmp 1016e8 <all_ints>
001023bd <isr83>:
1023bd: 6a 00 push $0x0
1023bf: 6a 53 push $0x53
1023c1: 0f a8 push %gs
1023c3: 0f a0 push %fs
1023c5: 06 push %es
1023c6: 1e push %ds
1023c7: 60 pusha
1023c8: 66 b8 10 00 mov $0x10,%ax
1023cc: 8e d8 mov %eax,%ds
1023ce: 8e c0 mov %eax,%es
1023d0: 8e e0 mov %eax,%fs
1023d2: 8e e8 mov %eax,%gs
1023d4: 89 e0 mov %esp,%eax
1023d6: 50 push %eax
001023d7 <isr83.1>:
1023d7: b8 04 3e 10 00 mov $0x103e04,%eax
1023dc: ff d0 call *%eax
1023de: e9 05 f3 ff ff jmp 1016e8 <all_ints>
001023e3 <isr84>:
1023e3: 6a 00 push $0x0
1023e5: 6a 54 push $0x54
1023e7: 0f a8 push %gs
1023e9: 0f a0 push %fs
1023eb: 06 push %es
1023ec: 1e push %ds
1023ed: 60 pusha
1023ee: 66 b8 10 00 mov $0x10,%ax
1023f2: 8e d8 mov %eax,%ds
1023f4: 8e c0 mov %eax,%es
1023f6: 8e e0 mov %eax,%fs
1023f8: 8e e8 mov %eax,%gs
1023fa: 89 e0 mov %esp,%eax
1023fc: 50 push %eax
001023fd <isr84.1>:
1023fd: b8 04 3e 10 00 mov $0x103e04,%eax
102402: ff d0 call *%eax
102404: e9 df f2 ff ff jmp 1016e8 <all_ints>
00102409 <isr85>:
102409: 6a 00 push $0x0
10240b: 6a 55 push $0x55
10240d: 0f a8 push %gs
10240f: 0f a0 push %fs
102411: 06 push %es
102412: 1e push %ds
102413: 60 pusha
102414: 66 b8 10 00 mov $0x10,%ax
102418: 8e d8 mov %eax,%ds
10241a: 8e c0 mov %eax,%es
10241c: 8e e0 mov %eax,%fs
10241e: 8e e8 mov %eax,%gs
102420: 89 e0 mov %esp,%eax
102422: 50 push %eax
00102423 <isr85.1>:
102423: b8 04 3e 10 00 mov $0x103e04,%eax
102428: ff d0 call *%eax
10242a: e9 b9 f2 ff ff jmp 1016e8 <all_ints>
0010242f <isr86>:
10242f: 6a 00 push $0x0
102431: 6a 56 push $0x56
102433: 0f a8 push %gs
102435: 0f a0 push %fs
102437: 06 push %es
102438: 1e push %ds
102439: 60 pusha
10243a: 66 b8 10 00 mov $0x10,%ax
10243e: 8e d8 mov %eax,%ds
102440: 8e c0 mov %eax,%es
102442: 8e e0 mov %eax,%fs
102444: 8e e8 mov %eax,%gs
102446: 89 e0 mov %esp,%eax
102448: 50 push %eax
00102449 <isr86.1>:
102449: b8 04 3e 10 00 mov $0x103e04,%eax
10244e: ff d0 call *%eax
102450: e9 93 f2 ff ff jmp 1016e8 <all_ints>
00102455 <isr87>:
102455: 6a 00 push $0x0
102457: 6a 57 push $0x57
102459: 0f a8 push %gs
10245b: 0f a0 push %fs
10245d: 06 push %es
10245e: 1e push %ds
10245f: 60 pusha
102460: 66 b8 10 00 mov $0x10,%ax
102464: 8e d8 mov %eax,%ds
102466: 8e c0 mov %eax,%es
102468: 8e e0 mov %eax,%fs
10246a: 8e e8 mov %eax,%gs
10246c: 89 e0 mov %esp,%eax
10246e: 50 push %eax
0010246f <isr87.1>:
10246f: b8 04 3e 10 00 mov $0x103e04,%eax
102474: ff d0 call *%eax
102476: e9 6d f2 ff ff jmp 1016e8 <all_ints>
0010247b <isr88>:
10247b: 6a 00 push $0x0
10247d: 6a 58 push $0x58
10247f: 0f a8 push %gs
102481: 0f a0 push %fs
102483: 06 push %es
102484: 1e push %ds
102485: 60 pusha
102486: 66 b8 10 00 mov $0x10,%ax
10248a: 8e d8 mov %eax,%ds
10248c: 8e c0 mov %eax,%es
10248e: 8e e0 mov %eax,%fs
102490: 8e e8 mov %eax,%gs
102492: 89 e0 mov %esp,%eax
102494: 50 push %eax
00102495 <isr88.1>:
102495: b8 04 3e 10 00 mov $0x103e04,%eax
10249a: ff d0 call *%eax
10249c: e9 47 f2 ff ff jmp 1016e8 <all_ints>
001024a1 <isr89>:
1024a1: 6a 00 push $0x0
1024a3: 6a 59 push $0x59
1024a5: 0f a8 push %gs
1024a7: 0f a0 push %fs
1024a9: 06 push %es
1024aa: 1e push %ds
1024ab: 60 pusha
1024ac: 66 b8 10 00 mov $0x10,%ax
1024b0: 8e d8 mov %eax,%ds
1024b2: 8e c0 mov %eax,%es
1024b4: 8e e0 mov %eax,%fs
1024b6: 8e e8 mov %eax,%gs
1024b8: 89 e0 mov %esp,%eax
1024ba: 50 push %eax
001024bb <isr89.1>:
1024bb: b8 04 3e 10 00 mov $0x103e04,%eax
1024c0: ff d0 call *%eax
1024c2: e9 21 f2 ff ff jmp 1016e8 <all_ints>
001024c7 <isr90>:
1024c7: 6a 00 push $0x0
1024c9: 6a 5a push $0x5a
1024cb: 0f a8 push %gs
1024cd: 0f a0 push %fs
1024cf: 06 push %es
1024d0: 1e push %ds
1024d1: 60 pusha
1024d2: 66 b8 10 00 mov $0x10,%ax
1024d6: 8e d8 mov %eax,%ds
1024d8: 8e c0 mov %eax,%es
1024da: 8e e0 mov %eax,%fs
1024dc: 8e e8 mov %eax,%gs
1024de: 89 e0 mov %esp,%eax
1024e0: 50 push %eax
001024e1 <isr90.1>:
1024e1: b8 04 3e 10 00 mov $0x103e04,%eax
1024e6: ff d0 call *%eax
1024e8: e9 fb f1 ff ff jmp 1016e8 <all_ints>
001024ed <isr91>:
1024ed: 6a 00 push $0x0
1024ef: 6a 5b push $0x5b
1024f1: 0f a8 push %gs
1024f3: 0f a0 push %fs
1024f5: 06 push %es
1024f6: 1e push %ds
1024f7: 60 pusha
1024f8: 66 b8 10 00 mov $0x10,%ax
1024fc: 8e d8 mov %eax,%ds
1024fe: 8e c0 mov %eax,%es
102500: 8e e0 mov %eax,%fs
102502: 8e e8 mov %eax,%gs
102504: 89 e0 mov %esp,%eax
102506: 50 push %eax
00102507 <isr91.1>:
102507: b8 04 3e 10 00 mov $0x103e04,%eax
10250c: ff d0 call *%eax
10250e: e9 d5 f1 ff ff jmp 1016e8 <all_ints>
00102513 <isr92>:
102513: 6a 00 push $0x0
102515: 6a 5c push $0x5c
102517: 0f a8 push %gs
102519: 0f a0 push %fs
10251b: 06 push %es
10251c: 1e push %ds
10251d: 60 pusha
10251e: 66 b8 10 00 mov $0x10,%ax
102522: 8e d8 mov %eax,%ds
102524: 8e c0 mov %eax,%es
102526: 8e e0 mov %eax,%fs
102528: 8e e8 mov %eax,%gs
10252a: 89 e0 mov %esp,%eax
10252c: 50 push %eax
0010252d <isr92.1>:
10252d: b8 04 3e 10 00 mov $0x103e04,%eax
102532: ff d0 call *%eax
102534: e9 af f1 ff ff jmp 1016e8 <all_ints>
00102539 <isr93>:
102539: 6a 00 push $0x0
10253b: 6a 5d push $0x5d
10253d: 0f a8 push %gs
10253f: 0f a0 push %fs
102541: 06 push %es
102542: 1e push %ds
102543: 60 pusha
102544: 66 b8 10 00 mov $0x10,%ax
102548: 8e d8 mov %eax,%ds
10254a: 8e c0 mov %eax,%es
10254c: 8e e0 mov %eax,%fs
10254e: 8e e8 mov %eax,%gs
102550: 89 e0 mov %esp,%eax
102552: 50 push %eax
00102553 <isr93.1>:
102553: b8 04 3e 10 00 mov $0x103e04,%eax
102558: ff d0 call *%eax
10255a: e9 89 f1 ff ff jmp 1016e8 <all_ints>
0010255f <isr94>:
10255f: 6a 00 push $0x0
102561: 6a 5e push $0x5e
102563: 0f a8 push %gs
102565: 0f a0 push %fs
102567: 06 push %es
102568: 1e push %ds
102569: 60 pusha
10256a: 66 b8 10 00 mov $0x10,%ax
10256e: 8e d8 mov %eax,%ds
102570: 8e c0 mov %eax,%es
102572: 8e e0 mov %eax,%fs
102574: 8e e8 mov %eax,%gs
102576: 89 e0 mov %esp,%eax
102578: 50 push %eax
00102579 <isr94.1>:
102579: b8 04 3e 10 00 mov $0x103e04,%eax
10257e: ff d0 call *%eax
102580: e9 63 f1 ff ff jmp 1016e8 <all_ints>
00102585 <isr95>:
102585: 6a 00 push $0x0
102587: 6a 5f push $0x5f
102589: 0f a8 push %gs
10258b: 0f a0 push %fs
10258d: 06 push %es
10258e: 1e push %ds
10258f: 60 pusha
102590: 66 b8 10 00 mov $0x10,%ax
102594: 8e d8 mov %eax,%ds
102596: 8e c0 mov %eax,%es
102598: 8e e0 mov %eax,%fs
10259a: 8e e8 mov %eax,%gs
10259c: 89 e0 mov %esp,%eax
10259e: 50 push %eax
0010259f <isr95.1>:
10259f: b8 04 3e 10 00 mov $0x103e04,%eax
1025a4: ff d0 call *%eax
1025a6: e9 3d f1 ff ff jmp 1016e8 <all_ints>
001025ab <isr96>:
1025ab: 6a 00 push $0x0
1025ad: 6a 60 push $0x60
1025af: 0f a8 push %gs
1025b1: 0f a0 push %fs
1025b3: 06 push %es
1025b4: 1e push %ds
1025b5: 60 pusha
1025b6: 66 b8 10 00 mov $0x10,%ax
1025ba: 8e d8 mov %eax,%ds
1025bc: 8e c0 mov %eax,%es
1025be: 8e e0 mov %eax,%fs
1025c0: 8e e8 mov %eax,%gs
1025c2: 89 e0 mov %esp,%eax
1025c4: 50 push %eax
001025c5 <isr96.1>:
1025c5: b8 04 3e 10 00 mov $0x103e04,%eax
1025ca: ff d0 call *%eax
1025cc: e9 17 f1 ff ff jmp 1016e8 <all_ints>
001025d1 <isr97>:
1025d1: 6a 00 push $0x0
1025d3: 6a 61 push $0x61
1025d5: 0f a8 push %gs
1025d7: 0f a0 push %fs
1025d9: 06 push %es
1025da: 1e push %ds
1025db: 60 pusha
1025dc: 66 b8 10 00 mov $0x10,%ax
1025e0: 8e d8 mov %eax,%ds
1025e2: 8e c0 mov %eax,%es
1025e4: 8e e0 mov %eax,%fs
1025e6: 8e e8 mov %eax,%gs
1025e8: 89 e0 mov %esp,%eax
1025ea: 50 push %eax
001025eb <isr97.1>:
1025eb: b8 04 3e 10 00 mov $0x103e04,%eax
1025f0: ff d0 call *%eax
1025f2: e9 f1 f0 ff ff jmp 1016e8 <all_ints>
001025f7 <isr98>:
1025f7: 6a 00 push $0x0
1025f9: 6a 62 push $0x62
1025fb: 0f a8 push %gs
1025fd: 0f a0 push %fs
1025ff: 06 push %es
102600: 1e push %ds
102601: 60 pusha
102602: 66 b8 10 00 mov $0x10,%ax
102606: 8e d8 mov %eax,%ds
102608: 8e c0 mov %eax,%es
10260a: 8e e0 mov %eax,%fs
10260c: 8e e8 mov %eax,%gs
10260e: 89 e0 mov %esp,%eax
102610: 50 push %eax
00102611 <isr98.1>:
102611: b8 04 3e 10 00 mov $0x103e04,%eax
102616: ff d0 call *%eax
102618: e9 cb f0 ff ff jmp 1016e8 <all_ints>
0010261d <isr99>:
10261d: 6a 00 push $0x0
10261f: 6a 63 push $0x63
102621: 0f a8 push %gs
102623: 0f a0 push %fs
102625: 06 push %es
102626: 1e push %ds
102627: 60 pusha
102628: 66 b8 10 00 mov $0x10,%ax
10262c: 8e d8 mov %eax,%ds
10262e: 8e c0 mov %eax,%es
102630: 8e e0 mov %eax,%fs
102632: 8e e8 mov %eax,%gs
102634: 89 e0 mov %esp,%eax
102636: 50 push %eax
00102637 <isr99.1>:
102637: b8 04 3e 10 00 mov $0x103e04,%eax
10263c: ff d0 call *%eax
10263e: e9 a5 f0 ff ff jmp 1016e8 <all_ints>
00102643 <isr100>:
102643: 6a 00 push $0x0
102645: 6a 64 push $0x64
102647: 0f a8 push %gs
102649: 0f a0 push %fs
10264b: 06 push %es
10264c: 1e push %ds
10264d: 60 pusha
10264e: 66 b8 10 00 mov $0x10,%ax
102652: 8e d8 mov %eax,%ds
102654: 8e c0 mov %eax,%es
102656: 8e e0 mov %eax,%fs
102658: 8e e8 mov %eax,%gs
10265a: 89 e0 mov %esp,%eax
10265c: 50 push %eax
0010265d <isr100.1>:
10265d: b8 04 3e 10 00 mov $0x103e04,%eax
102662: ff d0 call *%eax
102664: e9 7f f0 ff ff jmp 1016e8 <all_ints>
00102669 <isr101>:
102669: 6a 00 push $0x0
10266b: 6a 65 push $0x65
10266d: 0f a8 push %gs
10266f: 0f a0 push %fs
102671: 06 push %es
102672: 1e push %ds
102673: 60 pusha
102674: 66 b8 10 00 mov $0x10,%ax
102678: 8e d8 mov %eax,%ds
10267a: 8e c0 mov %eax,%es
10267c: 8e e0 mov %eax,%fs
10267e: 8e e8 mov %eax,%gs
102680: 89 e0 mov %esp,%eax
102682: 50 push %eax
00102683 <isr101.1>:
102683: b8 04 3e 10 00 mov $0x103e04,%eax
102688: ff d0 call *%eax
10268a: e9 59 f0 ff ff jmp 1016e8 <all_ints>
0010268f <isr102>:
10268f: 6a 00 push $0x0
102691: 6a 66 push $0x66
102693: 0f a8 push %gs
102695: 0f a0 push %fs
102697: 06 push %es
102698: 1e push %ds
102699: 60 pusha
10269a: 66 b8 10 00 mov $0x10,%ax
10269e: 8e d8 mov %eax,%ds
1026a0: 8e c0 mov %eax,%es
1026a2: 8e e0 mov %eax,%fs
1026a4: 8e e8 mov %eax,%gs
1026a6: 89 e0 mov %esp,%eax
1026a8: 50 push %eax
001026a9 <isr102.1>:
1026a9: b8 04 3e 10 00 mov $0x103e04,%eax
1026ae: ff d0 call *%eax
1026b0: e9 33 f0 ff ff jmp 1016e8 <all_ints>
001026b5 <isr103>:
1026b5: 6a 00 push $0x0
1026b7: 6a 67 push $0x67
1026b9: 0f a8 push %gs
1026bb: 0f a0 push %fs
1026bd: 06 push %es
1026be: 1e push %ds
1026bf: 60 pusha
1026c0: 66 b8 10 00 mov $0x10,%ax
1026c4: 8e d8 mov %eax,%ds
1026c6: 8e c0 mov %eax,%es
1026c8: 8e e0 mov %eax,%fs
1026ca: 8e e8 mov %eax,%gs
1026cc: 89 e0 mov %esp,%eax
1026ce: 50 push %eax
001026cf <isr103.1>:
1026cf: b8 04 3e 10 00 mov $0x103e04,%eax
1026d4: ff d0 call *%eax
1026d6: e9 0d f0 ff ff jmp 1016e8 <all_ints>
001026db <isr104>:
1026db: 6a 00 push $0x0
1026dd: 6a 68 push $0x68
1026df: 0f a8 push %gs
1026e1: 0f a0 push %fs
1026e3: 06 push %es
1026e4: 1e push %ds
1026e5: 60 pusha
1026e6: 66 b8 10 00 mov $0x10,%ax
1026ea: 8e d8 mov %eax,%ds
1026ec: 8e c0 mov %eax,%es
1026ee: 8e e0 mov %eax,%fs
1026f0: 8e e8 mov %eax,%gs
1026f2: 89 e0 mov %esp,%eax
1026f4: 50 push %eax
001026f5 <isr104.1>:
1026f5: b8 04 3e 10 00 mov $0x103e04,%eax
1026fa: ff d0 call *%eax
1026fc: e9 e7 ef ff ff jmp 1016e8 <all_ints>
00102701 <isr105>:
102701: 6a 00 push $0x0
102703: 6a 69 push $0x69
102705: 0f a8 push %gs
102707: 0f a0 push %fs
102709: 06 push %es
10270a: 1e push %ds
10270b: 60 pusha
10270c: 66 b8 10 00 mov $0x10,%ax
102710: 8e d8 mov %eax,%ds
102712: 8e c0 mov %eax,%es
102714: 8e e0 mov %eax,%fs
102716: 8e e8 mov %eax,%gs
102718: 89 e0 mov %esp,%eax
10271a: 50 push %eax
0010271b <isr105.1>:
10271b: b8 04 3e 10 00 mov $0x103e04,%eax
102720: ff d0 call *%eax
102722: e9 c1 ef ff ff jmp 1016e8 <all_ints>
00102727 <isr106>:
102727: 6a 00 push $0x0
102729: 6a 6a push $0x6a
10272b: 0f a8 push %gs
10272d: 0f a0 push %fs
10272f: 06 push %es
102730: 1e push %ds
102731: 60 pusha
102732: 66 b8 10 00 mov $0x10,%ax
102736: 8e d8 mov %eax,%ds
102738: 8e c0 mov %eax,%es
10273a: 8e e0 mov %eax,%fs
10273c: 8e e8 mov %eax,%gs
10273e: 89 e0 mov %esp,%eax
102740: 50 push %eax
00102741 <isr106.1>:
102741: b8 04 3e 10 00 mov $0x103e04,%eax
102746: ff d0 call *%eax
102748: e9 9b ef ff ff jmp 1016e8 <all_ints>
0010274d <isr107>:
10274d: 6a 00 push $0x0
10274f: 6a 6b push $0x6b
102751: 0f a8 push %gs
102753: 0f a0 push %fs
102755: 06 push %es
102756: 1e push %ds
102757: 60 pusha
102758: 66 b8 10 00 mov $0x10,%ax
10275c: 8e d8 mov %eax,%ds
10275e: 8e c0 mov %eax,%es
102760: 8e e0 mov %eax,%fs
102762: 8e e8 mov %eax,%gs
102764: 89 e0 mov %esp,%eax
102766: 50 push %eax
00102767 <isr107.1>:
102767: b8 04 3e 10 00 mov $0x103e04,%eax
10276c: ff d0 call *%eax
10276e: e9 75 ef ff ff jmp 1016e8 <all_ints>
00102773 <isr108>:
102773: 6a 00 push $0x0
102775: 6a 6c push $0x6c
102777: 0f a8 push %gs
102779: 0f a0 push %fs
10277b: 06 push %es
10277c: 1e push %ds
10277d: 60 pusha
10277e: 66 b8 10 00 mov $0x10,%ax
102782: 8e d8 mov %eax,%ds
102784: 8e c0 mov %eax,%es
102786: 8e e0 mov %eax,%fs
102788: 8e e8 mov %eax,%gs
10278a: 89 e0 mov %esp,%eax
10278c: 50 push %eax
0010278d <isr108.1>:
10278d: b8 04 3e 10 00 mov $0x103e04,%eax
102792: ff d0 call *%eax
102794: e9 4f ef ff ff jmp 1016e8 <all_ints>
00102799 <isr109>:
102799: 6a 00 push $0x0
10279b: 6a 6d push $0x6d
10279d: 0f a8 push %gs
10279f: 0f a0 push %fs
1027a1: 06 push %es
1027a2: 1e push %ds
1027a3: 60 pusha
1027a4: 66 b8 10 00 mov $0x10,%ax
1027a8: 8e d8 mov %eax,%ds
1027aa: 8e c0 mov %eax,%es
1027ac: 8e e0 mov %eax,%fs
1027ae: 8e e8 mov %eax,%gs
1027b0: 89 e0 mov %esp,%eax
1027b2: 50 push %eax
001027b3 <isr109.1>:
1027b3: b8 04 3e 10 00 mov $0x103e04,%eax
1027b8: ff d0 call *%eax
1027ba: e9 29 ef ff ff jmp 1016e8 <all_ints>
001027bf <isr110>:
1027bf: 6a 00 push $0x0
1027c1: 6a 6e push $0x6e
1027c3: 0f a8 push %gs
1027c5: 0f a0 push %fs
1027c7: 06 push %es
1027c8: 1e push %ds
1027c9: 60 pusha
1027ca: 66 b8 10 00 mov $0x10,%ax
1027ce: 8e d8 mov %eax,%ds
1027d0: 8e c0 mov %eax,%es
1027d2: 8e e0 mov %eax,%fs
1027d4: 8e e8 mov %eax,%gs
1027d6: 89 e0 mov %esp,%eax
1027d8: 50 push %eax
001027d9 <isr110.1>:
1027d9: b8 04 3e 10 00 mov $0x103e04,%eax
1027de: ff d0 call *%eax
1027e0: e9 03 ef ff ff jmp 1016e8 <all_ints>
001027e5 <isr111>:
1027e5: 6a 00 push $0x0
1027e7: 6a 6f push $0x6f
1027e9: 0f a8 push %gs
1027eb: 0f a0 push %fs
1027ed: 06 push %es
1027ee: 1e push %ds
1027ef: 60 pusha
1027f0: 66 b8 10 00 mov $0x10,%ax
1027f4: 8e d8 mov %eax,%ds
1027f6: 8e c0 mov %eax,%es
1027f8: 8e e0 mov %eax,%fs
1027fa: 8e e8 mov %eax,%gs
1027fc: 89 e0 mov %esp,%eax
1027fe: 50 push %eax
001027ff <isr111.1>:
1027ff: b8 04 3e 10 00 mov $0x103e04,%eax
102804: ff d0 call *%eax
102806: e9 dd ee ff ff jmp 1016e8 <all_ints>
0010280b <isr112>:
10280b: 6a 00 push $0x0
10280d: 6a 70 push $0x70
10280f: 0f a8 push %gs
102811: 0f a0 push %fs
102813: 06 push %es
102814: 1e push %ds
102815: 60 pusha
102816: 66 b8 10 00 mov $0x10,%ax
10281a: 8e d8 mov %eax,%ds
10281c: 8e c0 mov %eax,%es
10281e: 8e e0 mov %eax,%fs
102820: 8e e8 mov %eax,%gs
102822: 89 e0 mov %esp,%eax
102824: 50 push %eax
00102825 <isr112.1>:
102825: b8 04 3e 10 00 mov $0x103e04,%eax
10282a: ff d0 call *%eax
10282c: e9 b7 ee ff ff jmp 1016e8 <all_ints>
00102831 <isr113>:
102831: 6a 00 push $0x0
102833: 6a 71 push $0x71
102835: 0f a8 push %gs
102837: 0f a0 push %fs
102839: 06 push %es
10283a: 1e push %ds
10283b: 60 pusha
10283c: 66 b8 10 00 mov $0x10,%ax
102840: 8e d8 mov %eax,%ds
102842: 8e c0 mov %eax,%es
102844: 8e e0 mov %eax,%fs
102846: 8e e8 mov %eax,%gs
102848: 89 e0 mov %esp,%eax
10284a: 50 push %eax
0010284b <isr113.1>:
10284b: b8 04 3e 10 00 mov $0x103e04,%eax
102850: ff d0 call *%eax
102852: e9 91 ee ff ff jmp 1016e8 <all_ints>
00102857 <isr114>:
102857: 6a 00 push $0x0
102859: 6a 72 push $0x72
10285b: 0f a8 push %gs
10285d: 0f a0 push %fs
10285f: 06 push %es
102860: 1e push %ds
102861: 60 pusha
102862: 66 b8 10 00 mov $0x10,%ax
102866: 8e d8 mov %eax,%ds
102868: 8e c0 mov %eax,%es
10286a: 8e e0 mov %eax,%fs
10286c: 8e e8 mov %eax,%gs
10286e: 89 e0 mov %esp,%eax
102870: 50 push %eax
00102871 <isr114.1>:
102871: b8 04 3e 10 00 mov $0x103e04,%eax
102876: ff d0 call *%eax
102878: e9 6b ee ff ff jmp 1016e8 <all_ints>
0010287d <isr115>:
10287d: 6a 00 push $0x0
10287f: 6a 73 push $0x73
102881: 0f a8 push %gs
102883: 0f a0 push %fs
102885: 06 push %es
102886: 1e push %ds
102887: 60 pusha
102888: 66 b8 10 00 mov $0x10,%ax
10288c: 8e d8 mov %eax,%ds
10288e: 8e c0 mov %eax,%es
102890: 8e e0 mov %eax,%fs
102892: 8e e8 mov %eax,%gs
102894: 89 e0 mov %esp,%eax
102896: 50 push %eax
00102897 <isr115.1>:
102897: b8 04 3e 10 00 mov $0x103e04,%eax
10289c: ff d0 call *%eax
10289e: e9 45 ee ff ff jmp 1016e8 <all_ints>
001028a3 <isr116>:
1028a3: 6a 00 push $0x0
1028a5: 6a 74 push $0x74
1028a7: 0f a8 push %gs
1028a9: 0f a0 push %fs
1028ab: 06 push %es
1028ac: 1e push %ds
1028ad: 60 pusha
1028ae: 66 b8 10 00 mov $0x10,%ax
1028b2: 8e d8 mov %eax,%ds
1028b4: 8e c0 mov %eax,%es
1028b6: 8e e0 mov %eax,%fs
1028b8: 8e e8 mov %eax,%gs
1028ba: 89 e0 mov %esp,%eax
1028bc: 50 push %eax
001028bd <isr116.1>:
1028bd: b8 04 3e 10 00 mov $0x103e04,%eax
1028c2: ff d0 call *%eax
1028c4: e9 1f ee ff ff jmp 1016e8 <all_ints>
001028c9 <isr117>:
1028c9: 6a 00 push $0x0
1028cb: 6a 75 push $0x75
1028cd: 0f a8 push %gs
1028cf: 0f a0 push %fs
1028d1: 06 push %es
1028d2: 1e push %ds
1028d3: 60 pusha
1028d4: 66 b8 10 00 mov $0x10,%ax
1028d8: 8e d8 mov %eax,%ds
1028da: 8e c0 mov %eax,%es
1028dc: 8e e0 mov %eax,%fs
1028de: 8e e8 mov %eax,%gs
1028e0: 89 e0 mov %esp,%eax
1028e2: 50 push %eax
001028e3 <isr117.1>:
1028e3: b8 04 3e 10 00 mov $0x103e04,%eax
1028e8: ff d0 call *%eax
1028ea: e9 f9 ed ff ff jmp 1016e8 <all_ints>
001028ef <isr118>:
1028ef: 6a 00 push $0x0
1028f1: 6a 76 push $0x76
1028f3: 0f a8 push %gs
1028f5: 0f a0 push %fs
1028f7: 06 push %es
1028f8: 1e push %ds
1028f9: 60 pusha
1028fa: 66 b8 10 00 mov $0x10,%ax
1028fe: 8e d8 mov %eax,%ds
102900: 8e c0 mov %eax,%es
102902: 8e e0 mov %eax,%fs
102904: 8e e8 mov %eax,%gs
102906: 89 e0 mov %esp,%eax
102908: 50 push %eax
00102909 <isr118.1>:
102909: b8 04 3e 10 00 mov $0x103e04,%eax
10290e: ff d0 call *%eax
102910: e9 d3 ed ff ff jmp 1016e8 <all_ints>
00102915 <isr119>:
102915: 6a 00 push $0x0
102917: 6a 77 push $0x77
102919: 0f a8 push %gs
10291b: 0f a0 push %fs
10291d: 06 push %es
10291e: 1e push %ds
10291f: 60 pusha
102920: 66 b8 10 00 mov $0x10,%ax
102924: 8e d8 mov %eax,%ds
102926: 8e c0 mov %eax,%es
102928: 8e e0 mov %eax,%fs
10292a: 8e e8 mov %eax,%gs
10292c: 89 e0 mov %esp,%eax
10292e: 50 push %eax
0010292f <isr119.1>:
10292f: b8 04 3e 10 00 mov $0x103e04,%eax
102934: ff d0 call *%eax
102936: e9 ad ed ff ff jmp 1016e8 <all_ints>
0010293b <isr120>:
10293b: 6a 00 push $0x0
10293d: 6a 78 push $0x78
10293f: 0f a8 push %gs
102941: 0f a0 push %fs
102943: 06 push %es
102944: 1e push %ds
102945: 60 pusha
102946: 66 b8 10 00 mov $0x10,%ax
10294a: 8e d8 mov %eax,%ds
10294c: 8e c0 mov %eax,%es
10294e: 8e e0 mov %eax,%fs
102950: 8e e8 mov %eax,%gs
102952: 89 e0 mov %esp,%eax
102954: 50 push %eax
00102955 <isr120.1>:
102955: b8 04 3e 10 00 mov $0x103e04,%eax
10295a: ff d0 call *%eax
10295c: e9 87 ed ff ff jmp 1016e8 <all_ints>
00102961 <isr121>:
102961: 6a 00 push $0x0
102963: 6a 79 push $0x79
102965: 0f a8 push %gs
102967: 0f a0 push %fs
102969: 06 push %es
10296a: 1e push %ds
10296b: 60 pusha
10296c: 66 b8 10 00 mov $0x10,%ax
102970: 8e d8 mov %eax,%ds
102972: 8e c0 mov %eax,%es
102974: 8e e0 mov %eax,%fs
102976: 8e e8 mov %eax,%gs
102978: 89 e0 mov %esp,%eax
10297a: 50 push %eax
0010297b <isr121.1>:
10297b: b8 04 3e 10 00 mov $0x103e04,%eax
102980: ff d0 call *%eax
102982: e9 61 ed ff ff jmp 1016e8 <all_ints>
00102987 <isr122>:
102987: 6a 00 push $0x0
102989: 6a 7a push $0x7a
10298b: 0f a8 push %gs
10298d: 0f a0 push %fs
10298f: 06 push %es
102990: 1e push %ds
102991: 60 pusha
102992: 66 b8 10 00 mov $0x10,%ax
102996: 8e d8 mov %eax,%ds
102998: 8e c0 mov %eax,%es
10299a: 8e e0 mov %eax,%fs
10299c: 8e e8 mov %eax,%gs
10299e: 89 e0 mov %esp,%eax
1029a0: 50 push %eax
001029a1 <isr122.1>:
1029a1: b8 04 3e 10 00 mov $0x103e04,%eax
1029a6: ff d0 call *%eax
1029a8: e9 3b ed ff ff jmp 1016e8 <all_ints>
001029ad <isr123>:
1029ad: 6a 00 push $0x0
1029af: 6a 7b push $0x7b
1029b1: 0f a8 push %gs
1029b3: 0f a0 push %fs
1029b5: 06 push %es
1029b6: 1e push %ds
1029b7: 60 pusha
1029b8: 66 b8 10 00 mov $0x10,%ax
1029bc: 8e d8 mov %eax,%ds
1029be: 8e c0 mov %eax,%es
1029c0: 8e e0 mov %eax,%fs
1029c2: 8e e8 mov %eax,%gs
1029c4: 89 e0 mov %esp,%eax
1029c6: 50 push %eax
001029c7 <isr123.1>:
1029c7: b8 04 3e 10 00 mov $0x103e04,%eax
1029cc: ff d0 call *%eax
1029ce: e9 15 ed ff ff jmp 1016e8 <all_ints>
001029d3 <isr124>:
1029d3: 6a 00 push $0x0
1029d5: 6a 7c push $0x7c
1029d7: 0f a8 push %gs
1029d9: 0f a0 push %fs
1029db: 06 push %es
1029dc: 1e push %ds
1029dd: 60 pusha
1029de: 66 b8 10 00 mov $0x10,%ax
1029e2: 8e d8 mov %eax,%ds
1029e4: 8e c0 mov %eax,%es
1029e6: 8e e0 mov %eax,%fs
1029e8: 8e e8 mov %eax,%gs
1029ea: 89 e0 mov %esp,%eax
1029ec: 50 push %eax
001029ed <isr124.1>:
1029ed: b8 04 3e 10 00 mov $0x103e04,%eax
1029f2: ff d0 call *%eax
1029f4: e9 ef ec ff ff jmp 1016e8 <all_ints>
001029f9 <isr125>:
1029f9: 6a 00 push $0x0
1029fb: 6a 7d push $0x7d
1029fd: 0f a8 push %gs
1029ff: 0f a0 push %fs
102a01: 06 push %es
102a02: 1e push %ds
102a03: 60 pusha
102a04: 66 b8 10 00 mov $0x10,%ax
102a08: 8e d8 mov %eax,%ds
102a0a: 8e c0 mov %eax,%es
102a0c: 8e e0 mov %eax,%fs
102a0e: 8e e8 mov %eax,%gs
102a10: 89 e0 mov %esp,%eax
102a12: 50 push %eax
00102a13 <isr125.1>:
102a13: b8 04 3e 10 00 mov $0x103e04,%eax
102a18: ff d0 call *%eax
102a1a: e9 c9 ec ff ff jmp 1016e8 <all_ints>
00102a1f <isr126>:
102a1f: 6a 00 push $0x0
102a21: 6a 7e push $0x7e
102a23: 0f a8 push %gs
102a25: 0f a0 push %fs
102a27: 06 push %es
102a28: 1e push %ds
102a29: 60 pusha
102a2a: 66 b8 10 00 mov $0x10,%ax
102a2e: 8e d8 mov %eax,%ds
102a30: 8e c0 mov %eax,%es
102a32: 8e e0 mov %eax,%fs
102a34: 8e e8 mov %eax,%gs
102a36: 89 e0 mov %esp,%eax
102a38: 50 push %eax
00102a39 <isr126.1>:
102a39: b8 04 3e 10 00 mov $0x103e04,%eax
102a3e: ff d0 call *%eax
102a40: e9 a3 ec ff ff jmp 1016e8 <all_ints>
00102a45 <isr127>:
102a45: 6a 00 push $0x0
102a47: 6a 7f push $0x7f
102a49: 0f a8 push %gs
102a4b: 0f a0 push %fs
102a4d: 06 push %es
102a4e: 1e push %ds
102a4f: 60 pusha
102a50: 66 b8 10 00 mov $0x10,%ax
102a54: 8e d8 mov %eax,%ds
102a56: 8e c0 mov %eax,%es
102a58: 8e e0 mov %eax,%fs
102a5a: 8e e8 mov %eax,%gs
102a5c: 89 e0 mov %esp,%eax
102a5e: 50 push %eax
00102a5f <isr127.1>:
102a5f: b8 04 3e 10 00 mov $0x103e04,%eax
102a64: ff d0 call *%eax
102a66: e9 7d ec ff ff jmp 1016e8 <all_ints>
00102a6b <isr128>:
102a6b: 6a 00 push $0x0
102a6d: 6a 80 push $0xffffff80
102a6f: 0f a8 push %gs
102a71: 0f a0 push %fs
102a73: 06 push %es
102a74: 1e push %ds
102a75: 60 pusha
102a76: 66 b8 10 00 mov $0x10,%ax
102a7a: 8e d8 mov %eax,%ds
102a7c: 8e c0 mov %eax,%es
102a7e: 8e e0 mov %eax,%fs
102a80: 8e e8 mov %eax,%gs
102a82: 89 e0 mov %esp,%eax
102a84: 50 push %eax
00102a85 <isr128.1>:
102a85: b8 04 3e 10 00 mov $0x103e04,%eax
102a8a: ff d0 call *%eax
102a8c: e9 57 ec ff ff jmp 1016e8 <all_ints>
00102a91 <isr129>:
102a91: 6a 00 push $0x0
102a93: 6a 81 push $0xffffff81
102a95: 0f a8 push %gs
102a97: 0f a0 push %fs
102a99: 06 push %es
102a9a: 1e push %ds
102a9b: 60 pusha
102a9c: 66 b8 10 00 mov $0x10,%ax
102aa0: 8e d8 mov %eax,%ds
102aa2: 8e c0 mov %eax,%es
102aa4: 8e e0 mov %eax,%fs
102aa6: 8e e8 mov %eax,%gs
102aa8: 89 e0 mov %esp,%eax
102aaa: 50 push %eax
00102aab <isr129.1>:
102aab: b8 04 3e 10 00 mov $0x103e04,%eax
102ab0: ff d0 call *%eax
102ab2: e9 31 ec ff ff jmp 1016e8 <all_ints>
00102ab7 <isr130>:
102ab7: 6a 00 push $0x0
102ab9: 6a 82 push $0xffffff82
102abb: 0f a8 push %gs
102abd: 0f a0 push %fs
102abf: 06 push %es
102ac0: 1e push %ds
102ac1: 60 pusha
102ac2: 66 b8 10 00 mov $0x10,%ax
102ac6: 8e d8 mov %eax,%ds
102ac8: 8e c0 mov %eax,%es
102aca: 8e e0 mov %eax,%fs
102acc: 8e e8 mov %eax,%gs
102ace: 89 e0 mov %esp,%eax
102ad0: 50 push %eax
00102ad1 <isr130.1>:
102ad1: b8 04 3e 10 00 mov $0x103e04,%eax
102ad6: ff d0 call *%eax
102ad8: e9 0b ec ff ff jmp 1016e8 <all_ints>
00102add <isr131>:
102add: 6a 00 push $0x0
102adf: 6a 83 push $0xffffff83
102ae1: 0f a8 push %gs
102ae3: 0f a0 push %fs
102ae5: 06 push %es
102ae6: 1e push %ds
102ae7: 60 pusha
102ae8: 66 b8 10 00 mov $0x10,%ax
102aec: 8e d8 mov %eax,%ds
102aee: 8e c0 mov %eax,%es
102af0: 8e e0 mov %eax,%fs
102af2: 8e e8 mov %eax,%gs
102af4: 89 e0 mov %esp,%eax
102af6: 50 push %eax
00102af7 <isr131.1>:
102af7: b8 04 3e 10 00 mov $0x103e04,%eax
102afc: ff d0 call *%eax
102afe: e9 e5 eb ff ff jmp 1016e8 <all_ints>
00102b03 <isr132>:
102b03: 6a 00 push $0x0
102b05: 6a 84 push $0xffffff84
102b07: 0f a8 push %gs
102b09: 0f a0 push %fs
102b0b: 06 push %es
102b0c: 1e push %ds
102b0d: 60 pusha
102b0e: 66 b8 10 00 mov $0x10,%ax
102b12: 8e d8 mov %eax,%ds
102b14: 8e c0 mov %eax,%es
102b16: 8e e0 mov %eax,%fs
102b18: 8e e8 mov %eax,%gs
102b1a: 89 e0 mov %esp,%eax
102b1c: 50 push %eax
00102b1d <isr132.1>:
102b1d: b8 04 3e 10 00 mov $0x103e04,%eax
102b22: ff d0 call *%eax
102b24: e9 bf eb ff ff jmp 1016e8 <all_ints>
00102b29 <isr133>:
102b29: 6a 00 push $0x0
102b2b: 6a 85 push $0xffffff85
102b2d: 0f a8 push %gs
102b2f: 0f a0 push %fs
102b31: 06 push %es
102b32: 1e push %ds
102b33: 60 pusha
102b34: 66 b8 10 00 mov $0x10,%ax
102b38: 8e d8 mov %eax,%ds
102b3a: 8e c0 mov %eax,%es
102b3c: 8e e0 mov %eax,%fs
102b3e: 8e e8 mov %eax,%gs
102b40: 89 e0 mov %esp,%eax
102b42: 50 push %eax
00102b43 <isr133.1>:
102b43: b8 04 3e 10 00 mov $0x103e04,%eax
102b48: ff d0 call *%eax
102b4a: e9 99 eb ff ff jmp 1016e8 <all_ints>
00102b4f <isr134>:
102b4f: 6a 00 push $0x0
102b51: 6a 86 push $0xffffff86
102b53: 0f a8 push %gs
102b55: 0f a0 push %fs
102b57: 06 push %es
102b58: 1e push %ds
102b59: 60 pusha
102b5a: 66 b8 10 00 mov $0x10,%ax
102b5e: 8e d8 mov %eax,%ds
102b60: 8e c0 mov %eax,%es
102b62: 8e e0 mov %eax,%fs
102b64: 8e e8 mov %eax,%gs
102b66: 89 e0 mov %esp,%eax
102b68: 50 push %eax
00102b69 <isr134.1>:
102b69: b8 04 3e 10 00 mov $0x103e04,%eax
102b6e: ff d0 call *%eax
102b70: e9 73 eb ff ff jmp 1016e8 <all_ints>
00102b75 <isr135>:
102b75: 6a 00 push $0x0
102b77: 6a 87 push $0xffffff87
102b79: 0f a8 push %gs
102b7b: 0f a0 push %fs
102b7d: 06 push %es
102b7e: 1e push %ds
102b7f: 60 pusha
102b80: 66 b8 10 00 mov $0x10,%ax
102b84: 8e d8 mov %eax,%ds
102b86: 8e c0 mov %eax,%es
102b88: 8e e0 mov %eax,%fs
102b8a: 8e e8 mov %eax,%gs
102b8c: 89 e0 mov %esp,%eax
102b8e: 50 push %eax
00102b8f <isr135.1>:
102b8f: b8 04 3e 10 00 mov $0x103e04,%eax
102b94: ff d0 call *%eax
102b96: e9 4d eb ff ff jmp 1016e8 <all_ints>
00102b9b <isr136>:
102b9b: 6a 00 push $0x0
102b9d: 6a 88 push $0xffffff88
102b9f: 0f a8 push %gs
102ba1: 0f a0 push %fs
102ba3: 06 push %es
102ba4: 1e push %ds
102ba5: 60 pusha
102ba6: 66 b8 10 00 mov $0x10,%ax
102baa: 8e d8 mov %eax,%ds
102bac: 8e c0 mov %eax,%es
102bae: 8e e0 mov %eax,%fs
102bb0: 8e e8 mov %eax,%gs
102bb2: 89 e0 mov %esp,%eax
102bb4: 50 push %eax
00102bb5 <isr136.1>:
102bb5: b8 04 3e 10 00 mov $0x103e04,%eax
102bba: ff d0 call *%eax
102bbc: e9 27 eb ff ff jmp 1016e8 <all_ints>
00102bc1 <isr137>:
102bc1: 6a 00 push $0x0
102bc3: 6a 89 push $0xffffff89
102bc5: 0f a8 push %gs
102bc7: 0f a0 push %fs
102bc9: 06 push %es
102bca: 1e push %ds
102bcb: 60 pusha
102bcc: 66 b8 10 00 mov $0x10,%ax
102bd0: 8e d8 mov %eax,%ds
102bd2: 8e c0 mov %eax,%es
102bd4: 8e e0 mov %eax,%fs
102bd6: 8e e8 mov %eax,%gs
102bd8: 89 e0 mov %esp,%eax
102bda: 50 push %eax
00102bdb <isr137.1>:
102bdb: b8 04 3e 10 00 mov $0x103e04,%eax
102be0: ff d0 call *%eax
102be2: e9 01 eb ff ff jmp 1016e8 <all_ints>
00102be7 <isr138>:
102be7: 6a 00 push $0x0
102be9: 6a 8a push $0xffffff8a
102beb: 0f a8 push %gs
102bed: 0f a0 push %fs
102bef: 06 push %es
102bf0: 1e push %ds
102bf1: 60 pusha
102bf2: 66 b8 10 00 mov $0x10,%ax
102bf6: 8e d8 mov %eax,%ds
102bf8: 8e c0 mov %eax,%es
102bfa: 8e e0 mov %eax,%fs
102bfc: 8e e8 mov %eax,%gs
102bfe: 89 e0 mov %esp,%eax
102c00: 50 push %eax
00102c01 <isr138.1>:
102c01: b8 04 3e 10 00 mov $0x103e04,%eax
102c06: ff d0 call *%eax
102c08: e9 db ea ff ff jmp 1016e8 <all_ints>
00102c0d <isr139>:
102c0d: 6a 00 push $0x0
102c0f: 6a 8b push $0xffffff8b
102c11: 0f a8 push %gs
102c13: 0f a0 push %fs
102c15: 06 push %es
102c16: 1e push %ds
102c17: 60 pusha
102c18: 66 b8 10 00 mov $0x10,%ax
102c1c: 8e d8 mov %eax,%ds
102c1e: 8e c0 mov %eax,%es
102c20: 8e e0 mov %eax,%fs
102c22: 8e e8 mov %eax,%gs
102c24: 89 e0 mov %esp,%eax
102c26: 50 push %eax
00102c27 <isr139.1>:
102c27: b8 04 3e 10 00 mov $0x103e04,%eax
102c2c: ff d0 call *%eax
102c2e: e9 b5 ea ff ff jmp 1016e8 <all_ints>
00102c33 <isr140>:
102c33: 6a 00 push $0x0
102c35: 6a 8c push $0xffffff8c
102c37: 0f a8 push %gs
102c39: 0f a0 push %fs
102c3b: 06 push %es
102c3c: 1e push %ds
102c3d: 60 pusha
102c3e: 66 b8 10 00 mov $0x10,%ax
102c42: 8e d8 mov %eax,%ds
102c44: 8e c0 mov %eax,%es
102c46: 8e e0 mov %eax,%fs
102c48: 8e e8 mov %eax,%gs
102c4a: 89 e0 mov %esp,%eax
102c4c: 50 push %eax
00102c4d <isr140.1>:
102c4d: b8 04 3e 10 00 mov $0x103e04,%eax
102c52: ff d0 call *%eax
102c54: e9 8f ea ff ff jmp 1016e8 <all_ints>
00102c59 <isr141>:
102c59: 6a 00 push $0x0
102c5b: 6a 8d push $0xffffff8d
102c5d: 0f a8 push %gs
102c5f: 0f a0 push %fs
102c61: 06 push %es
102c62: 1e push %ds
102c63: 60 pusha
102c64: 66 b8 10 00 mov $0x10,%ax
102c68: 8e d8 mov %eax,%ds
102c6a: 8e c0 mov %eax,%es
102c6c: 8e e0 mov %eax,%fs
102c6e: 8e e8 mov %eax,%gs
102c70: 89 e0 mov %esp,%eax
102c72: 50 push %eax
00102c73 <isr141.1>:
102c73: b8 04 3e 10 00 mov $0x103e04,%eax
102c78: ff d0 call *%eax
102c7a: e9 69 ea ff ff jmp 1016e8 <all_ints>
00102c7f <isr142>:
102c7f: 6a 00 push $0x0
102c81: 6a 8e push $0xffffff8e
102c83: 0f a8 push %gs
102c85: 0f a0 push %fs
102c87: 06 push %es
102c88: 1e push %ds
102c89: 60 pusha
102c8a: 66 b8 10 00 mov $0x10,%ax
102c8e: 8e d8 mov %eax,%ds
102c90: 8e c0 mov %eax,%es
102c92: 8e e0 mov %eax,%fs
102c94: 8e e8 mov %eax,%gs
102c96: 89 e0 mov %esp,%eax
102c98: 50 push %eax
00102c99 <isr142.1>:
102c99: b8 04 3e 10 00 mov $0x103e04,%eax
102c9e: ff d0 call *%eax
102ca0: e9 43 ea ff ff jmp 1016e8 <all_ints>
00102ca5 <isr143>:
102ca5: 6a 00 push $0x0
102ca7: 6a 8f push $0xffffff8f
102ca9: 0f a8 push %gs
102cab: 0f a0 push %fs
102cad: 06 push %es
102cae: 1e push %ds
102caf: 60 pusha
102cb0: 66 b8 10 00 mov $0x10,%ax
102cb4: 8e d8 mov %eax,%ds
102cb6: 8e c0 mov %eax,%es
102cb8: 8e e0 mov %eax,%fs
102cba: 8e e8 mov %eax,%gs
102cbc: 89 e0 mov %esp,%eax
102cbe: 50 push %eax
00102cbf <isr143.1>:
102cbf: b8 04 3e 10 00 mov $0x103e04,%eax
102cc4: ff d0 call *%eax
102cc6: e9 1d ea ff ff jmp 1016e8 <all_ints>
00102ccb <isr144>:
102ccb: 6a 00 push $0x0
102ccd: 6a 90 push $0xffffff90
102ccf: 0f a8 push %gs
102cd1: 0f a0 push %fs
102cd3: 06 push %es
102cd4: 1e push %ds
102cd5: 60 pusha
102cd6: 66 b8 10 00 mov $0x10,%ax
102cda: 8e d8 mov %eax,%ds
102cdc: 8e c0 mov %eax,%es
102cde: 8e e0 mov %eax,%fs
102ce0: 8e e8 mov %eax,%gs
102ce2: 89 e0 mov %esp,%eax
102ce4: 50 push %eax
00102ce5 <isr144.1>:
102ce5: b8 04 3e 10 00 mov $0x103e04,%eax
102cea: ff d0 call *%eax
102cec: e9 f7 e9 ff ff jmp 1016e8 <all_ints>
00102cf1 <isr145>:
102cf1: 6a 00 push $0x0
102cf3: 6a 91 push $0xffffff91
102cf5: 0f a8 push %gs
102cf7: 0f a0 push %fs
102cf9: 06 push %es
102cfa: 1e push %ds
102cfb: 60 pusha
102cfc: 66 b8 10 00 mov $0x10,%ax
102d00: 8e d8 mov %eax,%ds
102d02: 8e c0 mov %eax,%es
102d04: 8e e0 mov %eax,%fs
102d06: 8e e8 mov %eax,%gs
102d08: 89 e0 mov %esp,%eax
102d0a: 50 push %eax
00102d0b <isr145.1>:
102d0b: b8 04 3e 10 00 mov $0x103e04,%eax
102d10: ff d0 call *%eax
102d12: e9 d1 e9 ff ff jmp 1016e8 <all_ints>
00102d17 <isr146>:
102d17: 6a 00 push $0x0
102d19: 6a 92 push $0xffffff92
102d1b: 0f a8 push %gs
102d1d: 0f a0 push %fs
102d1f: 06 push %es
102d20: 1e push %ds
102d21: 60 pusha
102d22: 66 b8 10 00 mov $0x10,%ax
102d26: 8e d8 mov %eax,%ds
102d28: 8e c0 mov %eax,%es
102d2a: 8e e0 mov %eax,%fs
102d2c: 8e e8 mov %eax,%gs
102d2e: 89 e0 mov %esp,%eax
102d30: 50 push %eax
00102d31 <isr146.1>:
102d31: b8 04 3e 10 00 mov $0x103e04,%eax
102d36: ff d0 call *%eax
102d38: e9 ab e9 ff ff jmp 1016e8 <all_ints>
00102d3d <isr147>:
102d3d: 6a 00 push $0x0
102d3f: 6a 93 push $0xffffff93
102d41: 0f a8 push %gs
102d43: 0f a0 push %fs
102d45: 06 push %es
102d46: 1e push %ds
102d47: 60 pusha
102d48: 66 b8 10 00 mov $0x10,%ax
102d4c: 8e d8 mov %eax,%ds
102d4e: 8e c0 mov %eax,%es
102d50: 8e e0 mov %eax,%fs
102d52: 8e e8 mov %eax,%gs
102d54: 89 e0 mov %esp,%eax
102d56: 50 push %eax
00102d57 <isr147.1>:
102d57: b8 04 3e 10 00 mov $0x103e04,%eax
102d5c: ff d0 call *%eax
102d5e: e9 85 e9 ff ff jmp 1016e8 <all_ints>
00102d63 <isr148>:
102d63: 6a 00 push $0x0
102d65: 6a 94 push $0xffffff94
102d67: 0f a8 push %gs
102d69: 0f a0 push %fs
102d6b: 06 push %es
102d6c: 1e push %ds
102d6d: 60 pusha
102d6e: 66 b8 10 00 mov $0x10,%ax
102d72: 8e d8 mov %eax,%ds
102d74: 8e c0 mov %eax,%es
102d76: 8e e0 mov %eax,%fs
102d78: 8e e8 mov %eax,%gs
102d7a: 89 e0 mov %esp,%eax
102d7c: 50 push %eax
00102d7d <isr148.1>:
102d7d: b8 04 3e 10 00 mov $0x103e04,%eax
102d82: ff d0 call *%eax
102d84: e9 5f e9 ff ff jmp 1016e8 <all_ints>
00102d89 <isr149>:
102d89: 6a 00 push $0x0
102d8b: 6a 95 push $0xffffff95
102d8d: 0f a8 push %gs
102d8f: 0f a0 push %fs
102d91: 06 push %es
102d92: 1e push %ds
102d93: 60 pusha
102d94: 66 b8 10 00 mov $0x10,%ax
102d98: 8e d8 mov %eax,%ds
102d9a: 8e c0 mov %eax,%es
102d9c: 8e e0 mov %eax,%fs
102d9e: 8e e8 mov %eax,%gs
102da0: 89 e0 mov %esp,%eax
102da2: 50 push %eax
00102da3 <isr149.1>:
102da3: b8 04 3e 10 00 mov $0x103e04,%eax
102da8: ff d0 call *%eax
102daa: e9 39 e9 ff ff jmp 1016e8 <all_ints>
00102daf <isr150>:
102daf: 6a 00 push $0x0
102db1: 6a 96 push $0xffffff96
102db3: 0f a8 push %gs
102db5: 0f a0 push %fs
102db7: 06 push %es
102db8: 1e push %ds
102db9: 60 pusha
102dba: 66 b8 10 00 mov $0x10,%ax
102dbe: 8e d8 mov %eax,%ds
102dc0: 8e c0 mov %eax,%es
102dc2: 8e e0 mov %eax,%fs
102dc4: 8e e8 mov %eax,%gs
102dc6: 89 e0 mov %esp,%eax
102dc8: 50 push %eax
00102dc9 <isr150.1>:
102dc9: b8 04 3e 10 00 mov $0x103e04,%eax
102dce: ff d0 call *%eax
102dd0: e9 13 e9 ff ff jmp 1016e8 <all_ints>
00102dd5 <isr151>:
102dd5: 6a 00 push $0x0
102dd7: 6a 97 push $0xffffff97
102dd9: 0f a8 push %gs
102ddb: 0f a0 push %fs
102ddd: 06 push %es
102dde: 1e push %ds
102ddf: 60 pusha
102de0: 66 b8 10 00 mov $0x10,%ax
102de4: 8e d8 mov %eax,%ds
102de6: 8e c0 mov %eax,%es
102de8: 8e e0 mov %eax,%fs
102dea: 8e e8 mov %eax,%gs
102dec: 89 e0 mov %esp,%eax
102dee: 50 push %eax
00102def <isr151.1>:
102def: b8 04 3e 10 00 mov $0x103e04,%eax
102df4: ff d0 call *%eax
102df6: e9 ed e8 ff ff jmp 1016e8 <all_ints>
00102dfb <isr152>:
102dfb: 6a 00 push $0x0
102dfd: 6a 98 push $0xffffff98
102dff: 0f a8 push %gs
102e01: 0f a0 push %fs
102e03: 06 push %es
102e04: 1e push %ds
102e05: 60 pusha
102e06: 66 b8 10 00 mov $0x10,%ax
102e0a: 8e d8 mov %eax,%ds
102e0c: 8e c0 mov %eax,%es
102e0e: 8e e0 mov %eax,%fs
102e10: 8e e8 mov %eax,%gs
102e12: 89 e0 mov %esp,%eax
102e14: 50 push %eax
00102e15 <isr152.1>:
102e15: b8 04 3e 10 00 mov $0x103e04,%eax
102e1a: ff d0 call *%eax
102e1c: e9 c7 e8 ff ff jmp 1016e8 <all_ints>
00102e21 <isr153>:
102e21: 6a 00 push $0x0
102e23: 6a 99 push $0xffffff99
102e25: 0f a8 push %gs
102e27: 0f a0 push %fs
102e29: 06 push %es
102e2a: 1e push %ds
102e2b: 60 pusha
102e2c: 66 b8 10 00 mov $0x10,%ax
102e30: 8e d8 mov %eax,%ds
102e32: 8e c0 mov %eax,%es
102e34: 8e e0 mov %eax,%fs
102e36: 8e e8 mov %eax,%gs
102e38: 89 e0 mov %esp,%eax
102e3a: 50 push %eax
00102e3b <isr153.1>:
102e3b: b8 04 3e 10 00 mov $0x103e04,%eax
102e40: ff d0 call *%eax
102e42: e9 a1 e8 ff ff jmp 1016e8 <all_ints>
00102e47 <isr154>:
102e47: 6a 00 push $0x0
102e49: 6a 9a push $0xffffff9a
102e4b: 0f a8 push %gs
102e4d: 0f a0 push %fs
102e4f: 06 push %es
102e50: 1e push %ds
102e51: 60 pusha
102e52: 66 b8 10 00 mov $0x10,%ax
102e56: 8e d8 mov %eax,%ds
102e58: 8e c0 mov %eax,%es
102e5a: 8e e0 mov %eax,%fs
102e5c: 8e e8 mov %eax,%gs
102e5e: 89 e0 mov %esp,%eax
102e60: 50 push %eax
00102e61 <isr154.1>:
102e61: b8 04 3e 10 00 mov $0x103e04,%eax
102e66: ff d0 call *%eax
102e68: e9 7b e8 ff ff jmp 1016e8 <all_ints>
00102e6d <isr155>:
102e6d: 6a 00 push $0x0
102e6f: 6a 9b push $0xffffff9b
102e71: 0f a8 push %gs
102e73: 0f a0 push %fs
102e75: 06 push %es
102e76: 1e push %ds
102e77: 60 pusha
102e78: 66 b8 10 00 mov $0x10,%ax
102e7c: 8e d8 mov %eax,%ds
102e7e: 8e c0 mov %eax,%es
102e80: 8e e0 mov %eax,%fs
102e82: 8e e8 mov %eax,%gs
102e84: 89 e0 mov %esp,%eax
102e86: 50 push %eax
00102e87 <isr155.1>:
102e87: b8 04 3e 10 00 mov $0x103e04,%eax
102e8c: ff d0 call *%eax
102e8e: e9 55 e8 ff ff jmp 1016e8 <all_ints>
00102e93 <isr156>:
102e93: 6a 00 push $0x0
102e95: 6a 9c push $0xffffff9c
102e97: 0f a8 push %gs
102e99: 0f a0 push %fs
102e9b: 06 push %es
102e9c: 1e push %ds
102e9d: 60 pusha
102e9e: 66 b8 10 00 mov $0x10,%ax
102ea2: 8e d8 mov %eax,%ds
102ea4: 8e c0 mov %eax,%es
102ea6: 8e e0 mov %eax,%fs
102ea8: 8e e8 mov %eax,%gs
102eaa: 89 e0 mov %esp,%eax
102eac: 50 push %eax
00102ead <isr156.1>:
102ead: b8 04 3e 10 00 mov $0x103e04,%eax
102eb2: ff d0 call *%eax
102eb4: e9 2f e8 ff ff jmp 1016e8 <all_ints>
00102eb9 <isr157>:
102eb9: 6a 00 push $0x0
102ebb: 6a 9d push $0xffffff9d
102ebd: 0f a8 push %gs
102ebf: 0f a0 push %fs
102ec1: 06 push %es
102ec2: 1e push %ds
102ec3: 60 pusha
102ec4: 66 b8 10 00 mov $0x10,%ax
102ec8: 8e d8 mov %eax,%ds
102eca: 8e c0 mov %eax,%es
102ecc: 8e e0 mov %eax,%fs
102ece: 8e e8 mov %eax,%gs
102ed0: 89 e0 mov %esp,%eax
102ed2: 50 push %eax
00102ed3 <isr157.1>:
102ed3: b8 04 3e 10 00 mov $0x103e04,%eax
102ed8: ff d0 call *%eax
102eda: e9 09 e8 ff ff jmp 1016e8 <all_ints>
00102edf <isr158>:
102edf: 6a 00 push $0x0
102ee1: 6a 9e push $0xffffff9e
102ee3: 0f a8 push %gs
102ee5: 0f a0 push %fs
102ee7: 06 push %es
102ee8: 1e push %ds
102ee9: 60 pusha
102eea: 66 b8 10 00 mov $0x10,%ax
102eee: 8e d8 mov %eax,%ds
102ef0: 8e c0 mov %eax,%es
102ef2: 8e e0 mov %eax,%fs
102ef4: 8e e8 mov %eax,%gs
102ef6: 89 e0 mov %esp,%eax
102ef8: 50 push %eax
00102ef9 <isr158.1>:
102ef9: b8 04 3e 10 00 mov $0x103e04,%eax
102efe: ff d0 call *%eax
102f00: e9 e3 e7 ff ff jmp 1016e8 <all_ints>
00102f05 <isr159>:
102f05: 6a 00 push $0x0
102f07: 6a 9f push $0xffffff9f
102f09: 0f a8 push %gs
102f0b: 0f a0 push %fs
102f0d: 06 push %es
102f0e: 1e push %ds
102f0f: 60 pusha
102f10: 66 b8 10 00 mov $0x10,%ax
102f14: 8e d8 mov %eax,%ds
102f16: 8e c0 mov %eax,%es
102f18: 8e e0 mov %eax,%fs
102f1a: 8e e8 mov %eax,%gs
102f1c: 89 e0 mov %esp,%eax
102f1e: 50 push %eax
00102f1f <isr159.1>:
102f1f: b8 04 3e 10 00 mov $0x103e04,%eax
102f24: ff d0 call *%eax
102f26: e9 bd e7 ff ff jmp 1016e8 <all_ints>
00102f2b <isr160>:
102f2b: 6a 00 push $0x0
102f2d: 6a a0 push $0xffffffa0
102f2f: 0f a8 push %gs
102f31: 0f a0 push %fs
102f33: 06 push %es
102f34: 1e push %ds
102f35: 60 pusha
102f36: 66 b8 10 00 mov $0x10,%ax
102f3a: 8e d8 mov %eax,%ds
102f3c: 8e c0 mov %eax,%es
102f3e: 8e e0 mov %eax,%fs
102f40: 8e e8 mov %eax,%gs
102f42: 89 e0 mov %esp,%eax
102f44: 50 push %eax
00102f45 <isr160.1>:
102f45: b8 04 3e 10 00 mov $0x103e04,%eax
102f4a: ff d0 call *%eax
102f4c: e9 97 e7 ff ff jmp 1016e8 <all_ints>
00102f51 <isr161>:
102f51: 6a 00 push $0x0
102f53: 6a a1 push $0xffffffa1
102f55: 0f a8 push %gs
102f57: 0f a0 push %fs
102f59: 06 push %es
102f5a: 1e push %ds
102f5b: 60 pusha
102f5c: 66 b8 10 00 mov $0x10,%ax
102f60: 8e d8 mov %eax,%ds
102f62: 8e c0 mov %eax,%es
102f64: 8e e0 mov %eax,%fs
102f66: 8e e8 mov %eax,%gs
102f68: 89 e0 mov %esp,%eax
102f6a: 50 push %eax
00102f6b <isr161.1>:
102f6b: b8 04 3e 10 00 mov $0x103e04,%eax
102f70: ff d0 call *%eax
102f72: e9 71 e7 ff ff jmp 1016e8 <all_ints>
00102f77 <isr162>:
102f77: 6a 00 push $0x0
102f79: 6a a2 push $0xffffffa2
102f7b: 0f a8 push %gs
102f7d: 0f a0 push %fs
102f7f: 06 push %es
102f80: 1e push %ds
102f81: 60 pusha
102f82: 66 b8 10 00 mov $0x10,%ax
102f86: 8e d8 mov %eax,%ds
102f88: 8e c0 mov %eax,%es
102f8a: 8e e0 mov %eax,%fs
102f8c: 8e e8 mov %eax,%gs
102f8e: 89 e0 mov %esp,%eax
102f90: 50 push %eax
00102f91 <isr162.1>:
102f91: b8 04 3e 10 00 mov $0x103e04,%eax
102f96: ff d0 call *%eax
102f98: e9 4b e7 ff ff jmp 1016e8 <all_ints>
00102f9d <isr163>:
102f9d: 6a 00 push $0x0
102f9f: 6a a3 push $0xffffffa3
102fa1: 0f a8 push %gs
102fa3: 0f a0 push %fs
102fa5: 06 push %es
102fa6: 1e push %ds
102fa7: 60 pusha
102fa8: 66 b8 10 00 mov $0x10,%ax
102fac: 8e d8 mov %eax,%ds
102fae: 8e c0 mov %eax,%es
102fb0: 8e e0 mov %eax,%fs
102fb2: 8e e8 mov %eax,%gs
102fb4: 89 e0 mov %esp,%eax
102fb6: 50 push %eax
00102fb7 <isr163.1>:
102fb7: b8 04 3e 10 00 mov $0x103e04,%eax
102fbc: ff d0 call *%eax
102fbe: e9 25 e7 ff ff jmp 1016e8 <all_ints>
00102fc3 <isr164>:
102fc3: 6a 00 push $0x0
102fc5: 6a a4 push $0xffffffa4
102fc7: 0f a8 push %gs
102fc9: 0f a0 push %fs
102fcb: 06 push %es
102fcc: 1e push %ds
102fcd: 60 pusha
102fce: 66 b8 10 00 mov $0x10,%ax
102fd2: 8e d8 mov %eax,%ds
102fd4: 8e c0 mov %eax,%es
102fd6: 8e e0 mov %eax,%fs
102fd8: 8e e8 mov %eax,%gs
102fda: 89 e0 mov %esp,%eax
102fdc: 50 push %eax
00102fdd <isr164.1>:
102fdd: b8 04 3e 10 00 mov $0x103e04,%eax
102fe2: ff d0 call *%eax
102fe4: e9 ff e6 ff ff jmp 1016e8 <all_ints>
00102fe9 <isr165>:
102fe9: 6a 00 push $0x0
102feb: 6a a5 push $0xffffffa5
102fed: 0f a8 push %gs
102fef: 0f a0 push %fs
102ff1: 06 push %es
102ff2: 1e push %ds
102ff3: 60 pusha
102ff4: 66 b8 10 00 mov $0x10,%ax
102ff8: 8e d8 mov %eax,%ds
102ffa: 8e c0 mov %eax,%es
102ffc: 8e e0 mov %eax,%fs
102ffe: 8e e8 mov %eax,%gs
103000: 89 e0 mov %esp,%eax
103002: 50 push %eax
00103003 <isr165.1>:
103003: b8 04 3e 10 00 mov $0x103e04,%eax
103008: ff d0 call *%eax
10300a: e9 d9 e6 ff ff jmp 1016e8 <all_ints>
0010300f <isr166>:
10300f: 6a 00 push $0x0
103011: 6a a6 push $0xffffffa6
103013: 0f a8 push %gs
103015: 0f a0 push %fs
103017: 06 push %es
103018: 1e push %ds
103019: 60 pusha
10301a: 66 b8 10 00 mov $0x10,%ax
10301e: 8e d8 mov %eax,%ds
103020: 8e c0 mov %eax,%es
103022: 8e e0 mov %eax,%fs
103024: 8e e8 mov %eax,%gs
103026: 89 e0 mov %esp,%eax
103028: 50 push %eax
00103029 <isr166.1>:
103029: b8 04 3e 10 00 mov $0x103e04,%eax
10302e: ff d0 call *%eax
103030: e9 b3 e6 ff ff jmp 1016e8 <all_ints>
00103035 <isr167>:
103035: 6a 00 push $0x0
103037: 6a a7 push $0xffffffa7
103039: 0f a8 push %gs
10303b: 0f a0 push %fs
10303d: 06 push %es
10303e: 1e push %ds
10303f: 60 pusha
103040: 66 b8 10 00 mov $0x10,%ax
103044: 8e d8 mov %eax,%ds
103046: 8e c0 mov %eax,%es
103048: 8e e0 mov %eax,%fs
10304a: 8e e8 mov %eax,%gs
10304c: 89 e0 mov %esp,%eax
10304e: 50 push %eax
0010304f <isr167.1>:
10304f: b8 04 3e 10 00 mov $0x103e04,%eax
103054: ff d0 call *%eax
103056: e9 8d e6 ff ff jmp 1016e8 <all_ints>
0010305b <isr168>:
10305b: 6a 00 push $0x0
10305d: 6a a8 push $0xffffffa8
10305f: 0f a8 push %gs
103061: 0f a0 push %fs
103063: 06 push %es
103064: 1e push %ds
103065: 60 pusha
103066: 66 b8 10 00 mov $0x10,%ax
10306a: 8e d8 mov %eax,%ds
10306c: 8e c0 mov %eax,%es
10306e: 8e e0 mov %eax,%fs
103070: 8e e8 mov %eax,%gs
103072: 89 e0 mov %esp,%eax
103074: 50 push %eax
00103075 <isr168.1>:
103075: b8 04 3e 10 00 mov $0x103e04,%eax
10307a: ff d0 call *%eax
10307c: e9 67 e6 ff ff jmp 1016e8 <all_ints>
00103081 <isr169>:
103081: 6a 00 push $0x0
103083: 6a a9 push $0xffffffa9
103085: 0f a8 push %gs
103087: 0f a0 push %fs
103089: 06 push %es
10308a: 1e push %ds
10308b: 60 pusha
10308c: 66 b8 10 00 mov $0x10,%ax
103090: 8e d8 mov %eax,%ds
103092: 8e c0 mov %eax,%es
103094: 8e e0 mov %eax,%fs
103096: 8e e8 mov %eax,%gs
103098: 89 e0 mov %esp,%eax
10309a: 50 push %eax
0010309b <isr169.1>:
10309b: b8 04 3e 10 00 mov $0x103e04,%eax
1030a0: ff d0 call *%eax
1030a2: e9 41 e6 ff ff jmp 1016e8 <all_ints>
001030a7 <isr170>:
1030a7: 6a 00 push $0x0
1030a9: 6a aa push $0xffffffaa
1030ab: 0f a8 push %gs
1030ad: 0f a0 push %fs
1030af: 06 push %es
1030b0: 1e push %ds
1030b1: 60 pusha
1030b2: 66 b8 10 00 mov $0x10,%ax
1030b6: 8e d8 mov %eax,%ds
1030b8: 8e c0 mov %eax,%es
1030ba: 8e e0 mov %eax,%fs
1030bc: 8e e8 mov %eax,%gs
1030be: 89 e0 mov %esp,%eax
1030c0: 50 push %eax
001030c1 <isr170.1>:
1030c1: b8 04 3e 10 00 mov $0x103e04,%eax
1030c6: ff d0 call *%eax
1030c8: e9 1b e6 ff ff jmp 1016e8 <all_ints>
001030cd <isr171>:
1030cd: 6a 00 push $0x0
1030cf: 6a ab push $0xffffffab
1030d1: 0f a8 push %gs
1030d3: 0f a0 push %fs
1030d5: 06 push %es
1030d6: 1e push %ds
1030d7: 60 pusha
1030d8: 66 b8 10 00 mov $0x10,%ax
1030dc: 8e d8 mov %eax,%ds
1030de: 8e c0 mov %eax,%es
1030e0: 8e e0 mov %eax,%fs
1030e2: 8e e8 mov %eax,%gs
1030e4: 89 e0 mov %esp,%eax
1030e6: 50 push %eax
001030e7 <isr171.1>:
1030e7: b8 04 3e 10 00 mov $0x103e04,%eax
1030ec: ff d0 call *%eax
1030ee: e9 f5 e5 ff ff jmp 1016e8 <all_ints>
001030f3 <isr172>:
1030f3: 6a 00 push $0x0
1030f5: 6a ac push $0xffffffac
1030f7: 0f a8 push %gs
1030f9: 0f a0 push %fs
1030fb: 06 push %es
1030fc: 1e push %ds
1030fd: 60 pusha
1030fe: 66 b8 10 00 mov $0x10,%ax
103102: 8e d8 mov %eax,%ds
103104: 8e c0 mov %eax,%es
103106: 8e e0 mov %eax,%fs
103108: 8e e8 mov %eax,%gs
10310a: 89 e0 mov %esp,%eax
10310c: 50 push %eax
0010310d <isr172.1>:
10310d: b8 04 3e 10 00 mov $0x103e04,%eax
103112: ff d0 call *%eax
103114: e9 cf e5 ff ff jmp 1016e8 <all_ints>
00103119 <isr173>:
103119: 6a 00 push $0x0
10311b: 6a ad push $0xffffffad
10311d: 0f a8 push %gs
10311f: 0f a0 push %fs
103121: 06 push %es
103122: 1e push %ds
103123: 60 pusha
103124: 66 b8 10 00 mov $0x10,%ax
103128: 8e d8 mov %eax,%ds
10312a: 8e c0 mov %eax,%es
10312c: 8e e0 mov %eax,%fs
10312e: 8e e8 mov %eax,%gs
103130: 89 e0 mov %esp,%eax
103132: 50 push %eax
00103133 <isr173.1>:
103133: b8 04 3e 10 00 mov $0x103e04,%eax
103138: ff d0 call *%eax
10313a: e9 a9 e5 ff ff jmp 1016e8 <all_ints>
0010313f <isr174>:
10313f: 6a 00 push $0x0
103141: 6a ae push $0xffffffae
103143: 0f a8 push %gs
103145: 0f a0 push %fs
103147: 06 push %es
103148: 1e push %ds
103149: 60 pusha
10314a: 66 b8 10 00 mov $0x10,%ax
10314e: 8e d8 mov %eax,%ds
103150: 8e c0 mov %eax,%es
103152: 8e e0 mov %eax,%fs
103154: 8e e8 mov %eax,%gs
103156: 89 e0 mov %esp,%eax
103158: 50 push %eax
00103159 <isr174.1>:
103159: b8 04 3e 10 00 mov $0x103e04,%eax
10315e: ff d0 call *%eax
103160: e9 83 e5 ff ff jmp 1016e8 <all_ints>
00103165 <isr175>:
103165: 6a 00 push $0x0
103167: 6a af push $0xffffffaf
103169: 0f a8 push %gs
10316b: 0f a0 push %fs
10316d: 06 push %es
10316e: 1e push %ds
10316f: 60 pusha
103170: 66 b8 10 00 mov $0x10,%ax
103174: 8e d8 mov %eax,%ds
103176: 8e c0 mov %eax,%es
103178: 8e e0 mov %eax,%fs
10317a: 8e e8 mov %eax,%gs
10317c: 89 e0 mov %esp,%eax
10317e: 50 push %eax
0010317f <isr175.1>:
10317f: b8 04 3e 10 00 mov $0x103e04,%eax
103184: ff d0 call *%eax
103186: e9 5d e5 ff ff jmp 1016e8 <all_ints>
0010318b <isr176>:
10318b: 6a 00 push $0x0
10318d: 6a b0 push $0xffffffb0
10318f: 0f a8 push %gs
103191: 0f a0 push %fs
103193: 06 push %es
103194: 1e push %ds
103195: 60 pusha
103196: 66 b8 10 00 mov $0x10,%ax
10319a: 8e d8 mov %eax,%ds
10319c: 8e c0 mov %eax,%es
10319e: 8e e0 mov %eax,%fs
1031a0: 8e e8 mov %eax,%gs
1031a2: 89 e0 mov %esp,%eax
1031a4: 50 push %eax
001031a5 <isr176.1>:
1031a5: b8 04 3e 10 00 mov $0x103e04,%eax
1031aa: ff d0 call *%eax
1031ac: e9 37 e5 ff ff jmp 1016e8 <all_ints>
001031b1 <isr177>:
1031b1: 6a 00 push $0x0
1031b3: 6a b1 push $0xffffffb1
1031b5: 0f a8 push %gs
1031b7: 0f a0 push %fs
1031b9: 06 push %es
1031ba: 1e push %ds
1031bb: 60 pusha
1031bc: 66 b8 10 00 mov $0x10,%ax
1031c0: 8e d8 mov %eax,%ds
1031c2: 8e c0 mov %eax,%es
1031c4: 8e e0 mov %eax,%fs
1031c6: 8e e8 mov %eax,%gs
1031c8: 89 e0 mov %esp,%eax
1031ca: 50 push %eax
001031cb <isr177.1>:
1031cb: b8 04 3e 10 00 mov $0x103e04,%eax
1031d0: ff d0 call *%eax
1031d2: e9 11 e5 ff ff jmp 1016e8 <all_ints>
001031d7 <isr178>:
1031d7: 6a 00 push $0x0
1031d9: 6a b2 push $0xffffffb2
1031db: 0f a8 push %gs
1031dd: 0f a0 push %fs
1031df: 06 push %es
1031e0: 1e push %ds
1031e1: 60 pusha
1031e2: 66 b8 10 00 mov $0x10,%ax
1031e6: 8e d8 mov %eax,%ds
1031e8: 8e c0 mov %eax,%es
1031ea: 8e e0 mov %eax,%fs
1031ec: 8e e8 mov %eax,%gs
1031ee: 89 e0 mov %esp,%eax
1031f0: 50 push %eax
001031f1 <isr178.1>:
1031f1: b8 04 3e 10 00 mov $0x103e04,%eax
1031f6: ff d0 call *%eax
1031f8: e9 eb e4 ff ff jmp 1016e8 <all_ints>
001031fd <isr179>:
1031fd: 6a 00 push $0x0
1031ff: 6a b3 push $0xffffffb3
103201: 0f a8 push %gs
103203: 0f a0 push %fs
103205: 06 push %es
103206: 1e push %ds
103207: 60 pusha
103208: 66 b8 10 00 mov $0x10,%ax
10320c: 8e d8 mov %eax,%ds
10320e: 8e c0 mov %eax,%es
103210: 8e e0 mov %eax,%fs
103212: 8e e8 mov %eax,%gs
103214: 89 e0 mov %esp,%eax
103216: 50 push %eax
00103217 <isr179.1>:
103217: b8 04 3e 10 00 mov $0x103e04,%eax
10321c: ff d0 call *%eax
10321e: e9 c5 e4 ff ff jmp 1016e8 <all_ints>
00103223 <isr180>:
103223: 6a 00 push $0x0
103225: 6a b4 push $0xffffffb4
103227: 0f a8 push %gs
103229: 0f a0 push %fs
10322b: 06 push %es
10322c: 1e push %ds
10322d: 60 pusha
10322e: 66 b8 10 00 mov $0x10,%ax
103232: 8e d8 mov %eax,%ds
103234: 8e c0 mov %eax,%es
103236: 8e e0 mov %eax,%fs
103238: 8e e8 mov %eax,%gs
10323a: 89 e0 mov %esp,%eax
10323c: 50 push %eax
0010323d <isr180.1>:
10323d: b8 04 3e 10 00 mov $0x103e04,%eax
103242: ff d0 call *%eax
103244: e9 9f e4 ff ff jmp 1016e8 <all_ints>
00103249 <isr181>:
103249: 6a 00 push $0x0
10324b: 6a b5 push $0xffffffb5
10324d: 0f a8 push %gs
10324f: 0f a0 push %fs
103251: 06 push %es
103252: 1e push %ds
103253: 60 pusha
103254: 66 b8 10 00 mov $0x10,%ax
103258: 8e d8 mov %eax,%ds
10325a: 8e c0 mov %eax,%es
10325c: 8e e0 mov %eax,%fs
10325e: 8e e8 mov %eax,%gs
103260: 89 e0 mov %esp,%eax
103262: 50 push %eax
00103263 <isr181.1>:
103263: b8 04 3e 10 00 mov $0x103e04,%eax
103268: ff d0 call *%eax
10326a: e9 79 e4 ff ff jmp 1016e8 <all_ints>
0010326f <isr182>:
10326f: 6a 00 push $0x0
103271: 6a b6 push $0xffffffb6
103273: 0f a8 push %gs
103275: 0f a0 push %fs
103277: 06 push %es
103278: 1e push %ds
103279: 60 pusha
10327a: 66 b8 10 00 mov $0x10,%ax
10327e: 8e d8 mov %eax,%ds
103280: 8e c0 mov %eax,%es
103282: 8e e0 mov %eax,%fs
103284: 8e e8 mov %eax,%gs
103286: 89 e0 mov %esp,%eax
103288: 50 push %eax
00103289 <isr182.1>:
103289: b8 04 3e 10 00 mov $0x103e04,%eax
10328e: ff d0 call *%eax
103290: e9 53 e4 ff ff jmp 1016e8 <all_ints>
00103295 <isr183>:
103295: 6a 00 push $0x0
103297: 6a b7 push $0xffffffb7
103299: 0f a8 push %gs
10329b: 0f a0 push %fs
10329d: 06 push %es
10329e: 1e push %ds
10329f: 60 pusha
1032a0: 66 b8 10 00 mov $0x10,%ax
1032a4: 8e d8 mov %eax,%ds
1032a6: 8e c0 mov %eax,%es
1032a8: 8e e0 mov %eax,%fs
1032aa: 8e e8 mov %eax,%gs
1032ac: 89 e0 mov %esp,%eax
1032ae: 50 push %eax
001032af <isr183.1>:
1032af: b8 04 3e 10 00 mov $0x103e04,%eax
1032b4: ff d0 call *%eax
1032b6: e9 2d e4 ff ff jmp 1016e8 <all_ints>
001032bb <isr184>:
1032bb: 6a 00 push $0x0
1032bd: 6a b8 push $0xffffffb8
1032bf: 0f a8 push %gs
1032c1: 0f a0 push %fs
1032c3: 06 push %es
1032c4: 1e push %ds
1032c5: 60 pusha
1032c6: 66 b8 10 00 mov $0x10,%ax
1032ca: 8e d8 mov %eax,%ds
1032cc: 8e c0 mov %eax,%es
1032ce: 8e e0 mov %eax,%fs
1032d0: 8e e8 mov %eax,%gs
1032d2: 89 e0 mov %esp,%eax
1032d4: 50 push %eax
001032d5 <isr184.1>:
1032d5: b8 04 3e 10 00 mov $0x103e04,%eax
1032da: ff d0 call *%eax
1032dc: e9 07 e4 ff ff jmp 1016e8 <all_ints>
001032e1 <isr185>:
1032e1: 6a 00 push $0x0
1032e3: 6a b9 push $0xffffffb9
1032e5: 0f a8 push %gs
1032e7: 0f a0 push %fs
1032e9: 06 push %es
1032ea: 1e push %ds
1032eb: 60 pusha
1032ec: 66 b8 10 00 mov $0x10,%ax
1032f0: 8e d8 mov %eax,%ds
1032f2: 8e c0 mov %eax,%es
1032f4: 8e e0 mov %eax,%fs
1032f6: 8e e8 mov %eax,%gs
1032f8: 89 e0 mov %esp,%eax
1032fa: 50 push %eax
001032fb <isr185.1>:
1032fb: b8 04 3e 10 00 mov $0x103e04,%eax
103300: ff d0 call *%eax
103302: e9 e1 e3 ff ff jmp 1016e8 <all_ints>
00103307 <isr186>:
103307: 6a 00 push $0x0
103309: 6a ba push $0xffffffba
10330b: 0f a8 push %gs
10330d: 0f a0 push %fs
10330f: 06 push %es
103310: 1e push %ds
103311: 60 pusha
103312: 66 b8 10 00 mov $0x10,%ax
103316: 8e d8 mov %eax,%ds
103318: 8e c0 mov %eax,%es
10331a: 8e e0 mov %eax,%fs
10331c: 8e e8 mov %eax,%gs
10331e: 89 e0 mov %esp,%eax
103320: 50 push %eax
00103321 <isr186.1>:
103321: b8 04 3e 10 00 mov $0x103e04,%eax
103326: ff d0 call *%eax
103328: e9 bb e3 ff ff jmp 1016e8 <all_ints>
0010332d <isr187>:
10332d: 6a 00 push $0x0
10332f: 6a bb push $0xffffffbb
103331: 0f a8 push %gs
103333: 0f a0 push %fs
103335: 06 push %es
103336: 1e push %ds
103337: 60 pusha
103338: 66 b8 10 00 mov $0x10,%ax
10333c: 8e d8 mov %eax,%ds
10333e: 8e c0 mov %eax,%es
103340: 8e e0 mov %eax,%fs
103342: 8e e8 mov %eax,%gs
103344: 89 e0 mov %esp,%eax
103346: 50 push %eax
00103347 <isr187.1>:
103347: b8 04 3e 10 00 mov $0x103e04,%eax
10334c: ff d0 call *%eax
10334e: e9 95 e3 ff ff jmp 1016e8 <all_ints>
00103353 <isr188>:
103353: 6a 00 push $0x0
103355: 6a bc push $0xffffffbc
103357: 0f a8 push %gs
103359: 0f a0 push %fs
10335b: 06 push %es
10335c: 1e push %ds
10335d: 60 pusha
10335e: 66 b8 10 00 mov $0x10,%ax
103362: 8e d8 mov %eax,%ds
103364: 8e c0 mov %eax,%es
103366: 8e e0 mov %eax,%fs
103368: 8e e8 mov %eax,%gs
10336a: 89 e0 mov %esp,%eax
10336c: 50 push %eax
0010336d <isr188.1>:
10336d: b8 04 3e 10 00 mov $0x103e04,%eax
103372: ff d0 call *%eax
103374: e9 6f e3 ff ff jmp 1016e8 <all_ints>
00103379 <isr189>:
103379: 6a 00 push $0x0
10337b: 6a bd push $0xffffffbd
10337d: 0f a8 push %gs
10337f: 0f a0 push %fs
103381: 06 push %es
103382: 1e push %ds
103383: 60 pusha
103384: 66 b8 10 00 mov $0x10,%ax
103388: 8e d8 mov %eax,%ds
10338a: 8e c0 mov %eax,%es
10338c: 8e e0 mov %eax,%fs
10338e: 8e e8 mov %eax,%gs
103390: 89 e0 mov %esp,%eax
103392: 50 push %eax
00103393 <isr189.1>:
103393: b8 04 3e 10 00 mov $0x103e04,%eax
103398: ff d0 call *%eax
10339a: e9 49 e3 ff ff jmp 1016e8 <all_ints>
0010339f <isr190>:
10339f: 6a 00 push $0x0
1033a1: 6a be push $0xffffffbe
1033a3: 0f a8 push %gs
1033a5: 0f a0 push %fs
1033a7: 06 push %es
1033a8: 1e push %ds
1033a9: 60 pusha
1033aa: 66 b8 10 00 mov $0x10,%ax
1033ae: 8e d8 mov %eax,%ds
1033b0: 8e c0 mov %eax,%es
1033b2: 8e e0 mov %eax,%fs
1033b4: 8e e8 mov %eax,%gs
1033b6: 89 e0 mov %esp,%eax
1033b8: 50 push %eax
001033b9 <isr190.1>:
1033b9: b8 04 3e 10 00 mov $0x103e04,%eax
1033be: ff d0 call *%eax
1033c0: e9 23 e3 ff ff jmp 1016e8 <all_ints>
001033c5 <isr191>:
1033c5: 6a 00 push $0x0
1033c7: 6a bf push $0xffffffbf
1033c9: 0f a8 push %gs
1033cb: 0f a0 push %fs
1033cd: 06 push %es
1033ce: 1e push %ds
1033cf: 60 pusha
1033d0: 66 b8 10 00 mov $0x10,%ax
1033d4: 8e d8 mov %eax,%ds
1033d6: 8e c0 mov %eax,%es
1033d8: 8e e0 mov %eax,%fs
1033da: 8e e8 mov %eax,%gs
1033dc: 89 e0 mov %esp,%eax
1033de: 50 push %eax
001033df <isr191.1>:
1033df: b8 04 3e 10 00 mov $0x103e04,%eax
1033e4: ff d0 call *%eax
1033e6: e9 fd e2 ff ff jmp 1016e8 <all_ints>
001033eb <isr192>:
1033eb: 6a 00 push $0x0
1033ed: 6a c0 push $0xffffffc0
1033ef: 0f a8 push %gs
1033f1: 0f a0 push %fs
1033f3: 06 push %es
1033f4: 1e push %ds
1033f5: 60 pusha
1033f6: 66 b8 10 00 mov $0x10,%ax
1033fa: 8e d8 mov %eax,%ds
1033fc: 8e c0 mov %eax,%es
1033fe: 8e e0 mov %eax,%fs
103400: 8e e8 mov %eax,%gs
103402: 89 e0 mov %esp,%eax
103404: 50 push %eax
00103405 <isr192.1>:
103405: b8 04 3e 10 00 mov $0x103e04,%eax
10340a: ff d0 call *%eax
10340c: e9 d7 e2 ff ff jmp 1016e8 <all_ints>
00103411 <isr193>:
103411: 6a 00 push $0x0
103413: 6a c1 push $0xffffffc1
103415: 0f a8 push %gs
103417: 0f a0 push %fs
103419: 06 push %es
10341a: 1e push %ds
10341b: 60 pusha
10341c: 66 b8 10 00 mov $0x10,%ax
103420: 8e d8 mov %eax,%ds
103422: 8e c0 mov %eax,%es
103424: 8e e0 mov %eax,%fs
103426: 8e e8 mov %eax,%gs
103428: 89 e0 mov %esp,%eax
10342a: 50 push %eax
0010342b <isr193.1>:
10342b: b8 04 3e 10 00 mov $0x103e04,%eax
103430: ff d0 call *%eax
103432: e9 b1 e2 ff ff jmp 1016e8 <all_ints>
00103437 <isr194>:
103437: 6a 00 push $0x0
103439: 6a c2 push $0xffffffc2
10343b: 0f a8 push %gs
10343d: 0f a0 push %fs
10343f: 06 push %es
103440: 1e push %ds
103441: 60 pusha
103442: 66 b8 10 00 mov $0x10,%ax
103446: 8e d8 mov %eax,%ds
103448: 8e c0 mov %eax,%es
10344a: 8e e0 mov %eax,%fs
10344c: 8e e8 mov %eax,%gs
10344e: 89 e0 mov %esp,%eax
103450: 50 push %eax
00103451 <isr194.1>:
103451: b8 04 3e 10 00 mov $0x103e04,%eax
103456: ff d0 call *%eax
103458: e9 8b e2 ff ff jmp 1016e8 <all_ints>
0010345d <isr195>:
10345d: 6a 00 push $0x0
10345f: 6a c3 push $0xffffffc3
103461: 0f a8 push %gs
103463: 0f a0 push %fs
103465: 06 push %es
103466: 1e push %ds
103467: 60 pusha
103468: 66 b8 10 00 mov $0x10,%ax
10346c: 8e d8 mov %eax,%ds
10346e: 8e c0 mov %eax,%es
103470: 8e e0 mov %eax,%fs
103472: 8e e8 mov %eax,%gs
103474: 89 e0 mov %esp,%eax
103476: 50 push %eax
00103477 <isr195.1>:
103477: b8 04 3e 10 00 mov $0x103e04,%eax
10347c: ff d0 call *%eax
10347e: e9 65 e2 ff ff jmp 1016e8 <all_ints>
00103483 <isr196>:
103483: 6a 00 push $0x0
103485: 6a c4 push $0xffffffc4
103487: 0f a8 push %gs
103489: 0f a0 push %fs
10348b: 06 push %es
10348c: 1e push %ds
10348d: 60 pusha
10348e: 66 b8 10 00 mov $0x10,%ax
103492: 8e d8 mov %eax,%ds
103494: 8e c0 mov %eax,%es
103496: 8e e0 mov %eax,%fs
103498: 8e e8 mov %eax,%gs
10349a: 89 e0 mov %esp,%eax
10349c: 50 push %eax
0010349d <isr196.1>:
10349d: b8 04 3e 10 00 mov $0x103e04,%eax
1034a2: ff d0 call *%eax
1034a4: e9 3f e2 ff ff jmp 1016e8 <all_ints>
001034a9 <isr197>:
1034a9: 6a 00 push $0x0
1034ab: 6a c5 push $0xffffffc5
1034ad: 0f a8 push %gs
1034af: 0f a0 push %fs
1034b1: 06 push %es
1034b2: 1e push %ds
1034b3: 60 pusha
1034b4: 66 b8 10 00 mov $0x10,%ax
1034b8: 8e d8 mov %eax,%ds
1034ba: 8e c0 mov %eax,%es
1034bc: 8e e0 mov %eax,%fs
1034be: 8e e8 mov %eax,%gs
1034c0: 89 e0 mov %esp,%eax
1034c2: 50 push %eax
001034c3 <isr197.1>:
1034c3: b8 04 3e 10 00 mov $0x103e04,%eax
1034c8: ff d0 call *%eax
1034ca: e9 19 e2 ff ff jmp 1016e8 <all_ints>
001034cf <isr198>:
1034cf: 6a 00 push $0x0
1034d1: 6a c6 push $0xffffffc6
1034d3: 0f a8 push %gs
1034d5: 0f a0 push %fs
1034d7: 06 push %es
1034d8: 1e push %ds
1034d9: 60 pusha
1034da: 66 b8 10 00 mov $0x10,%ax
1034de: 8e d8 mov %eax,%ds
1034e0: 8e c0 mov %eax,%es
1034e2: 8e e0 mov %eax,%fs
1034e4: 8e e8 mov %eax,%gs
1034e6: 89 e0 mov %esp,%eax
1034e8: 50 push %eax
001034e9 <isr198.1>:
1034e9: b8 04 3e 10 00 mov $0x103e04,%eax
1034ee: ff d0 call *%eax
1034f0: e9 f3 e1 ff ff jmp 1016e8 <all_ints>
001034f5 <isr199>:
1034f5: 6a 00 push $0x0
1034f7: 6a c7 push $0xffffffc7
1034f9: 0f a8 push %gs
1034fb: 0f a0 push %fs
1034fd: 06 push %es
1034fe: 1e push %ds
1034ff: 60 pusha
103500: 66 b8 10 00 mov $0x10,%ax
103504: 8e d8 mov %eax,%ds
103506: 8e c0 mov %eax,%es
103508: 8e e0 mov %eax,%fs
10350a: 8e e8 mov %eax,%gs
10350c: 89 e0 mov %esp,%eax
10350e: 50 push %eax
0010350f <isr199.1>:
10350f: b8 04 3e 10 00 mov $0x103e04,%eax
103514: ff d0 call *%eax
103516: e9 cd e1 ff ff jmp 1016e8 <all_ints>
0010351b <isr200>:
10351b: 6a 00 push $0x0
10351d: 6a c8 push $0xffffffc8
10351f: 0f a8 push %gs
103521: 0f a0 push %fs
103523: 06 push %es
103524: 1e push %ds
103525: 60 pusha
103526: 66 b8 10 00 mov $0x10,%ax
10352a: 8e d8 mov %eax,%ds
10352c: 8e c0 mov %eax,%es
10352e: 8e e0 mov %eax,%fs
103530: 8e e8 mov %eax,%gs
103532: 89 e0 mov %esp,%eax
103534: 50 push %eax
00103535 <isr200.1>:
103535: b8 04 3e 10 00 mov $0x103e04,%eax
10353a: ff d0 call *%eax
10353c: e9 a7 e1 ff ff jmp 1016e8 <all_ints>
00103541 <isr201>:
103541: 6a 00 push $0x0
103543: 6a c9 push $0xffffffc9
103545: 0f a8 push %gs
103547: 0f a0 push %fs
103549: 06 push %es
10354a: 1e push %ds
10354b: 60 pusha
10354c: 66 b8 10 00 mov $0x10,%ax
103550: 8e d8 mov %eax,%ds
103552: 8e c0 mov %eax,%es
103554: 8e e0 mov %eax,%fs
103556: 8e e8 mov %eax,%gs
103558: 89 e0 mov %esp,%eax
10355a: 50 push %eax
0010355b <isr201.1>:
10355b: b8 04 3e 10 00 mov $0x103e04,%eax
103560: ff d0 call *%eax
103562: e9 81 e1 ff ff jmp 1016e8 <all_ints>
00103567 <isr202>:
103567: 6a 00 push $0x0
103569: 6a ca push $0xffffffca
10356b: 0f a8 push %gs
10356d: 0f a0 push %fs
10356f: 06 push %es
103570: 1e push %ds
103571: 60 pusha
103572: 66 b8 10 00 mov $0x10,%ax
103576: 8e d8 mov %eax,%ds
103578: 8e c0 mov %eax,%es
10357a: 8e e0 mov %eax,%fs
10357c: 8e e8 mov %eax,%gs
10357e: 89 e0 mov %esp,%eax
103580: 50 push %eax
00103581 <isr202.1>:
103581: b8 04 3e 10 00 mov $0x103e04,%eax
103586: ff d0 call *%eax
103588: e9 5b e1 ff ff jmp 1016e8 <all_ints>
0010358d <isr203>:
10358d: 6a 00 push $0x0
10358f: 6a cb push $0xffffffcb
103591: 0f a8 push %gs
103593: 0f a0 push %fs
103595: 06 push %es
103596: 1e push %ds
103597: 60 pusha
103598: 66 b8 10 00 mov $0x10,%ax
10359c: 8e d8 mov %eax,%ds
10359e: 8e c0 mov %eax,%es
1035a0: 8e e0 mov %eax,%fs
1035a2: 8e e8 mov %eax,%gs
1035a4: 89 e0 mov %esp,%eax
1035a6: 50 push %eax
001035a7 <isr203.1>:
1035a7: b8 04 3e 10 00 mov $0x103e04,%eax
1035ac: ff d0 call *%eax
1035ae: e9 35 e1 ff ff jmp 1016e8 <all_ints>
001035b3 <isr204>:
1035b3: 6a 00 push $0x0
1035b5: 6a cc push $0xffffffcc
1035b7: 0f a8 push %gs
1035b9: 0f a0 push %fs
1035bb: 06 push %es
1035bc: 1e push %ds
1035bd: 60 pusha
1035be: 66 b8 10 00 mov $0x10,%ax
1035c2: 8e d8 mov %eax,%ds
1035c4: 8e c0 mov %eax,%es
1035c6: 8e e0 mov %eax,%fs
1035c8: 8e e8 mov %eax,%gs
1035ca: 89 e0 mov %esp,%eax
1035cc: 50 push %eax
001035cd <isr204.1>:
1035cd: b8 04 3e 10 00 mov $0x103e04,%eax
1035d2: ff d0 call *%eax
1035d4: e9 0f e1 ff ff jmp 1016e8 <all_ints>
001035d9 <isr205>:
1035d9: 6a 00 push $0x0
1035db: 6a cd push $0xffffffcd
1035dd: 0f a8 push %gs
1035df: 0f a0 push %fs
1035e1: 06 push %es
1035e2: 1e push %ds
1035e3: 60 pusha
1035e4: 66 b8 10 00 mov $0x10,%ax
1035e8: 8e d8 mov %eax,%ds
1035ea: 8e c0 mov %eax,%es
1035ec: 8e e0 mov %eax,%fs
1035ee: 8e e8 mov %eax,%gs
1035f0: 89 e0 mov %esp,%eax
1035f2: 50 push %eax
001035f3 <isr205.1>:
1035f3: b8 04 3e 10 00 mov $0x103e04,%eax
1035f8: ff d0 call *%eax
1035fa: e9 e9 e0 ff ff jmp 1016e8 <all_ints>
001035ff <isr206>:
1035ff: 6a 00 push $0x0
103601: 6a ce push $0xffffffce
103603: 0f a8 push %gs
103605: 0f a0 push %fs
103607: 06 push %es
103608: 1e push %ds
103609: 60 pusha
10360a: 66 b8 10 00 mov $0x10,%ax
10360e: 8e d8 mov %eax,%ds
103610: 8e c0 mov %eax,%es
103612: 8e e0 mov %eax,%fs
103614: 8e e8 mov %eax,%gs
103616: 89 e0 mov %esp,%eax
103618: 50 push %eax
00103619 <isr206.1>:
103619: b8 04 3e 10 00 mov $0x103e04,%eax
10361e: ff d0 call *%eax
103620: e9 c3 e0 ff ff jmp 1016e8 <all_ints>
00103625 <isr207>:
103625: 6a 00 push $0x0
103627: 6a cf push $0xffffffcf
103629: 0f a8 push %gs
10362b: 0f a0 push %fs
10362d: 06 push %es
10362e: 1e push %ds
10362f: 60 pusha
103630: 66 b8 10 00 mov $0x10,%ax
103634: 8e d8 mov %eax,%ds
103636: 8e c0 mov %eax,%es
103638: 8e e0 mov %eax,%fs
10363a: 8e e8 mov %eax,%gs
10363c: 89 e0 mov %esp,%eax
10363e: 50 push %eax
0010363f <isr207.1>:
10363f: b8 04 3e 10 00 mov $0x103e04,%eax
103644: ff d0 call *%eax
103646: e9 9d e0 ff ff jmp 1016e8 <all_ints>
0010364b <isr208>:
10364b: 6a 00 push $0x0
10364d: 6a d0 push $0xffffffd0
10364f: 0f a8 push %gs
103651: 0f a0 push %fs
103653: 06 push %es
103654: 1e push %ds
103655: 60 pusha
103656: 66 b8 10 00 mov $0x10,%ax
10365a: 8e d8 mov %eax,%ds
10365c: 8e c0 mov %eax,%es
10365e: 8e e0 mov %eax,%fs
103660: 8e e8 mov %eax,%gs
103662: 89 e0 mov %esp,%eax
103664: 50 push %eax
00103665 <isr208.1>:
103665: b8 04 3e 10 00 mov $0x103e04,%eax
10366a: ff d0 call *%eax
10366c: e9 77 e0 ff ff jmp 1016e8 <all_ints>
00103671 <isr209>:
103671: 6a 00 push $0x0
103673: 6a d1 push $0xffffffd1
103675: 0f a8 push %gs
103677: 0f a0 push %fs
103679: 06 push %es
10367a: 1e push %ds
10367b: 60 pusha
10367c: 66 b8 10 00 mov $0x10,%ax
103680: 8e d8 mov %eax,%ds
103682: 8e c0 mov %eax,%es
103684: 8e e0 mov %eax,%fs
103686: 8e e8 mov %eax,%gs
103688: 89 e0 mov %esp,%eax
10368a: 50 push %eax
0010368b <isr209.1>:
10368b: b8 04 3e 10 00 mov $0x103e04,%eax
103690: ff d0 call *%eax
103692: e9 51 e0 ff ff jmp 1016e8 <all_ints>
00103697 <isr210>:
103697: 6a 00 push $0x0
103699: 6a d2 push $0xffffffd2
10369b: 0f a8 push %gs
10369d: 0f a0 push %fs
10369f: 06 push %es
1036a0: 1e push %ds
1036a1: 60 pusha
1036a2: 66 b8 10 00 mov $0x10,%ax
1036a6: 8e d8 mov %eax,%ds
1036a8: 8e c0 mov %eax,%es
1036aa: 8e e0 mov %eax,%fs
1036ac: 8e e8 mov %eax,%gs
1036ae: 89 e0 mov %esp,%eax
1036b0: 50 push %eax
001036b1 <isr210.1>:
1036b1: b8 04 3e 10 00 mov $0x103e04,%eax
1036b6: ff d0 call *%eax
1036b8: e9 2b e0 ff ff jmp 1016e8 <all_ints>
001036bd <isr211>:
1036bd: 6a 00 push $0x0
1036bf: 6a d3 push $0xffffffd3
1036c1: 0f a8 push %gs
1036c3: 0f a0 push %fs
1036c5: 06 push %es
1036c6: 1e push %ds
1036c7: 60 pusha
1036c8: 66 b8 10 00 mov $0x10,%ax
1036cc: 8e d8 mov %eax,%ds
1036ce: 8e c0 mov %eax,%es
1036d0: 8e e0 mov %eax,%fs
1036d2: 8e e8 mov %eax,%gs
1036d4: 89 e0 mov %esp,%eax
1036d6: 50 push %eax
001036d7 <isr211.1>:
1036d7: b8 04 3e 10 00 mov $0x103e04,%eax
1036dc: ff d0 call *%eax
1036de: e9 05 e0 ff ff jmp 1016e8 <all_ints>
001036e3 <isr212>:
1036e3: 6a 00 push $0x0
1036e5: 6a d4 push $0xffffffd4
1036e7: 0f a8 push %gs
1036e9: 0f a0 push %fs
1036eb: 06 push %es
1036ec: 1e push %ds
1036ed: 60 pusha
1036ee: 66 b8 10 00 mov $0x10,%ax
1036f2: 8e d8 mov %eax,%ds
1036f4: 8e c0 mov %eax,%es
1036f6: 8e e0 mov %eax,%fs
1036f8: 8e e8 mov %eax,%gs
1036fa: 89 e0 mov %esp,%eax
1036fc: 50 push %eax
001036fd <isr212.1>:
1036fd: b8 04 3e 10 00 mov $0x103e04,%eax
103702: ff d0 call *%eax
103704: e9 df df ff ff jmp 1016e8 <all_ints>
00103709 <isr213>:
103709: 6a 00 push $0x0
10370b: 6a d5 push $0xffffffd5
10370d: 0f a8 push %gs
10370f: 0f a0 push %fs
103711: 06 push %es
103712: 1e push %ds
103713: 60 pusha
103714: 66 b8 10 00 mov $0x10,%ax
103718: 8e d8 mov %eax,%ds
10371a: 8e c0 mov %eax,%es
10371c: 8e e0 mov %eax,%fs
10371e: 8e e8 mov %eax,%gs
103720: 89 e0 mov %esp,%eax
103722: 50 push %eax
00103723 <isr213.1>:
103723: b8 04 3e 10 00 mov $0x103e04,%eax
103728: ff d0 call *%eax
10372a: e9 b9 df ff ff jmp 1016e8 <all_ints>
0010372f <isr214>:
10372f: 6a 00 push $0x0
103731: 6a d6 push $0xffffffd6
103733: 0f a8 push %gs
103735: 0f a0 push %fs
103737: 06 push %es
103738: 1e push %ds
103739: 60 pusha
10373a: 66 b8 10 00 mov $0x10,%ax
10373e: 8e d8 mov %eax,%ds
103740: 8e c0 mov %eax,%es
103742: 8e e0 mov %eax,%fs
103744: 8e e8 mov %eax,%gs
103746: 89 e0 mov %esp,%eax
103748: 50 push %eax
00103749 <isr214.1>:
103749: b8 04 3e 10 00 mov $0x103e04,%eax
10374e: ff d0 call *%eax
103750: e9 93 df ff ff jmp 1016e8 <all_ints>
00103755 <isr215>:
103755: 6a 00 push $0x0
103757: 6a d7 push $0xffffffd7
103759: 0f a8 push %gs
10375b: 0f a0 push %fs
10375d: 06 push %es
10375e: 1e push %ds
10375f: 60 pusha
103760: 66 b8 10 00 mov $0x10,%ax
103764: 8e d8 mov %eax,%ds
103766: 8e c0 mov %eax,%es
103768: 8e e0 mov %eax,%fs
10376a: 8e e8 mov %eax,%gs
10376c: 89 e0 mov %esp,%eax
10376e: 50 push %eax
0010376f <isr215.1>:
10376f: b8 04 3e 10 00 mov $0x103e04,%eax
103774: ff d0 call *%eax
103776: e9 6d df ff ff jmp 1016e8 <all_ints>
0010377b <isr216>:
10377b: 6a 00 push $0x0
10377d: 6a d8 push $0xffffffd8
10377f: 0f a8 push %gs
103781: 0f a0 push %fs
103783: 06 push %es
103784: 1e push %ds
103785: 60 pusha
103786: 66 b8 10 00 mov $0x10,%ax
10378a: 8e d8 mov %eax,%ds
10378c: 8e c0 mov %eax,%es
10378e: 8e e0 mov %eax,%fs
103790: 8e e8 mov %eax,%gs
103792: 89 e0 mov %esp,%eax
103794: 50 push %eax
00103795 <isr216.1>:
103795: b8 04 3e 10 00 mov $0x103e04,%eax
10379a: ff d0 call *%eax
10379c: e9 47 df ff ff jmp 1016e8 <all_ints>
001037a1 <isr217>:
1037a1: 6a 00 push $0x0
1037a3: 6a d9 push $0xffffffd9
1037a5: 0f a8 push %gs
1037a7: 0f a0 push %fs
1037a9: 06 push %es
1037aa: 1e push %ds
1037ab: 60 pusha
1037ac: 66 b8 10 00 mov $0x10,%ax
1037b0: 8e d8 mov %eax,%ds
1037b2: 8e c0 mov %eax,%es
1037b4: 8e e0 mov %eax,%fs
1037b6: 8e e8 mov %eax,%gs
1037b8: 89 e0 mov %esp,%eax
1037ba: 50 push %eax
001037bb <isr217.1>:
1037bb: b8 04 3e 10 00 mov $0x103e04,%eax
1037c0: ff d0 call *%eax
1037c2: e9 21 df ff ff jmp 1016e8 <all_ints>
001037c7 <isr218>:
1037c7: 6a 00 push $0x0
1037c9: 6a da push $0xffffffda
1037cb: 0f a8 push %gs
1037cd: 0f a0 push %fs
1037cf: 06 push %es
1037d0: 1e push %ds
1037d1: 60 pusha
1037d2: 66 b8 10 00 mov $0x10,%ax
1037d6: 8e d8 mov %eax,%ds
1037d8: 8e c0 mov %eax,%es
1037da: 8e e0 mov %eax,%fs
1037dc: 8e e8 mov %eax,%gs
1037de: 89 e0 mov %esp,%eax
1037e0: 50 push %eax
001037e1 <isr218.1>:
1037e1: b8 04 3e 10 00 mov $0x103e04,%eax
1037e6: ff d0 call *%eax
1037e8: e9 fb de ff ff jmp 1016e8 <all_ints>
001037ed <isr219>:
1037ed: 6a 00 push $0x0
1037ef: 6a db push $0xffffffdb
1037f1: 0f a8 push %gs
1037f3: 0f a0 push %fs
1037f5: 06 push %es
1037f6: 1e push %ds
1037f7: 60 pusha
1037f8: 66 b8 10 00 mov $0x10,%ax
1037fc: 8e d8 mov %eax,%ds
1037fe: 8e c0 mov %eax,%es
103800: 8e e0 mov %eax,%fs
103802: 8e e8 mov %eax,%gs
103804: 89 e0 mov %esp,%eax
103806: 50 push %eax
00103807 <isr219.1>:
103807: b8 04 3e 10 00 mov $0x103e04,%eax
10380c: ff d0 call *%eax
10380e: e9 d5 de ff ff jmp 1016e8 <all_ints>
00103813 <isr220>:
103813: 6a 00 push $0x0
103815: 6a dc push $0xffffffdc
103817: 0f a8 push %gs
103819: 0f a0 push %fs
10381b: 06 push %es
10381c: 1e push %ds
10381d: 60 pusha
10381e: 66 b8 10 00 mov $0x10,%ax
103822: 8e d8 mov %eax,%ds
103824: 8e c0 mov %eax,%es
103826: 8e e0 mov %eax,%fs
103828: 8e e8 mov %eax,%gs
10382a: 89 e0 mov %esp,%eax
10382c: 50 push %eax
0010382d <isr220.1>:
10382d: b8 04 3e 10 00 mov $0x103e04,%eax
103832: ff d0 call *%eax
103834: e9 af de ff ff jmp 1016e8 <all_ints>
00103839 <isr221>:
103839: 6a 00 push $0x0
10383b: 6a dd push $0xffffffdd
10383d: 0f a8 push %gs
10383f: 0f a0 push %fs
103841: 06 push %es
103842: 1e push %ds
103843: 60 pusha
103844: 66 b8 10 00 mov $0x10,%ax
103848: 8e d8 mov %eax,%ds
10384a: 8e c0 mov %eax,%es
10384c: 8e e0 mov %eax,%fs
10384e: 8e e8 mov %eax,%gs
103850: 89 e0 mov %esp,%eax
103852: 50 push %eax
00103853 <isr221.1>:
103853: b8 04 3e 10 00 mov $0x103e04,%eax
103858: ff d0 call *%eax
10385a: e9 89 de ff ff jmp 1016e8 <all_ints>
0010385f <isr222>:
10385f: 6a 00 push $0x0
103861: 6a de push $0xffffffde
103863: 0f a8 push %gs
103865: 0f a0 push %fs
103867: 06 push %es
103868: 1e push %ds
103869: 60 pusha
10386a: 66 b8 10 00 mov $0x10,%ax
10386e: 8e d8 mov %eax,%ds
103870: 8e c0 mov %eax,%es
103872: 8e e0 mov %eax,%fs
103874: 8e e8 mov %eax,%gs
103876: 89 e0 mov %esp,%eax
103878: 50 push %eax
00103879 <isr222.1>:
103879: b8 04 3e 10 00 mov $0x103e04,%eax
10387e: ff d0 call *%eax
103880: e9 63 de ff ff jmp 1016e8 <all_ints>
00103885 <isr223>:
103885: 6a 00 push $0x0
103887: 6a df push $0xffffffdf
103889: 0f a8 push %gs
10388b: 0f a0 push %fs
10388d: 06 push %es
10388e: 1e push %ds
10388f: 60 pusha
103890: 66 b8 10 00 mov $0x10,%ax
103894: 8e d8 mov %eax,%ds
103896: 8e c0 mov %eax,%es
103898: 8e e0 mov %eax,%fs
10389a: 8e e8 mov %eax,%gs
10389c: 89 e0 mov %esp,%eax
10389e: 50 push %eax
0010389f <isr223.1>:
10389f: b8 04 3e 10 00 mov $0x103e04,%eax
1038a4: ff d0 call *%eax
1038a6: e9 3d de ff ff jmp 1016e8 <all_ints>
001038ab <isr224>:
1038ab: 6a 00 push $0x0
1038ad: 6a e0 push $0xffffffe0
1038af: 0f a8 push %gs
1038b1: 0f a0 push %fs
1038b3: 06 push %es
1038b4: 1e push %ds
1038b5: 60 pusha
1038b6: 66 b8 10 00 mov $0x10,%ax
1038ba: 8e d8 mov %eax,%ds
1038bc: 8e c0 mov %eax,%es
1038be: 8e e0 mov %eax,%fs
1038c0: 8e e8 mov %eax,%gs
1038c2: 89 e0 mov %esp,%eax
1038c4: 50 push %eax
001038c5 <isr224.1>:
1038c5: b8 04 3e 10 00 mov $0x103e04,%eax
1038ca: ff d0 call *%eax
1038cc: e9 17 de ff ff jmp 1016e8 <all_ints>
001038d1 <isr225>:
1038d1: 6a 00 push $0x0
1038d3: 6a e1 push $0xffffffe1
1038d5: 0f a8 push %gs
1038d7: 0f a0 push %fs
1038d9: 06 push %es
1038da: 1e push %ds
1038db: 60 pusha
1038dc: 66 b8 10 00 mov $0x10,%ax
1038e0: 8e d8 mov %eax,%ds
1038e2: 8e c0 mov %eax,%es
1038e4: 8e e0 mov %eax,%fs
1038e6: 8e e8 mov %eax,%gs
1038e8: 89 e0 mov %esp,%eax
1038ea: 50 push %eax
001038eb <isr225.1>:
1038eb: b8 04 3e 10 00 mov $0x103e04,%eax
1038f0: ff d0 call *%eax
1038f2: e9 f1 dd ff ff jmp 1016e8 <all_ints>
001038f7 <isr226>:
1038f7: 6a 00 push $0x0
1038f9: 6a e2 push $0xffffffe2
1038fb: 0f a8 push %gs
1038fd: 0f a0 push %fs
1038ff: 06 push %es
103900: 1e push %ds
103901: 60 pusha
103902: 66 b8 10 00 mov $0x10,%ax
103906: 8e d8 mov %eax,%ds
103908: 8e c0 mov %eax,%es
10390a: 8e e0 mov %eax,%fs
10390c: 8e e8 mov %eax,%gs
10390e: 89 e0 mov %esp,%eax
103910: 50 push %eax
00103911 <isr226.1>:
103911: b8 04 3e 10 00 mov $0x103e04,%eax
103916: ff d0 call *%eax
103918: e9 cb dd ff ff jmp 1016e8 <all_ints>
0010391d <isr227>:
10391d: 6a 00 push $0x0
10391f: 6a e3 push $0xffffffe3
103921: 0f a8 push %gs
103923: 0f a0 push %fs
103925: 06 push %es
103926: 1e push %ds
103927: 60 pusha
103928: 66 b8 10 00 mov $0x10,%ax
10392c: 8e d8 mov %eax,%ds
10392e: 8e c0 mov %eax,%es
103930: 8e e0 mov %eax,%fs
103932: 8e e8 mov %eax,%gs
103934: 89 e0 mov %esp,%eax
103936: 50 push %eax
00103937 <isr227.1>:
103937: b8 04 3e 10 00 mov $0x103e04,%eax
10393c: ff d0 call *%eax
10393e: e9 a5 dd ff ff jmp 1016e8 <all_ints>
00103943 <isr228>:
103943: 6a 00 push $0x0
103945: 6a e4 push $0xffffffe4
103947: 0f a8 push %gs
103949: 0f a0 push %fs
10394b: 06 push %es
10394c: 1e push %ds
10394d: 60 pusha
10394e: 66 b8 10 00 mov $0x10,%ax
103952: 8e d8 mov %eax,%ds
103954: 8e c0 mov %eax,%es
103956: 8e e0 mov %eax,%fs
103958: 8e e8 mov %eax,%gs
10395a: 89 e0 mov %esp,%eax
10395c: 50 push %eax
0010395d <isr228.1>:
10395d: b8 04 3e 10 00 mov $0x103e04,%eax
103962: ff d0 call *%eax
103964: e9 7f dd ff ff jmp 1016e8 <all_ints>
00103969 <isr229>:
103969: 6a 00 push $0x0
10396b: 6a e5 push $0xffffffe5
10396d: 0f a8 push %gs
10396f: 0f a0 push %fs
103971: 06 push %es
103972: 1e push %ds
103973: 60 pusha
103974: 66 b8 10 00 mov $0x10,%ax
103978: 8e d8 mov %eax,%ds
10397a: 8e c0 mov %eax,%es
10397c: 8e e0 mov %eax,%fs
10397e: 8e e8 mov %eax,%gs
103980: 89 e0 mov %esp,%eax
103982: 50 push %eax
00103983 <isr229.1>:
103983: b8 04 3e 10 00 mov $0x103e04,%eax
103988: ff d0 call *%eax
10398a: e9 59 dd ff ff jmp 1016e8 <all_ints>
0010398f <isr230>:
10398f: 6a 00 push $0x0
103991: 6a e6 push $0xffffffe6
103993: 0f a8 push %gs
103995: 0f a0 push %fs
103997: 06 push %es
103998: 1e push %ds
103999: 60 pusha
10399a: 66 b8 10 00 mov $0x10,%ax
10399e: 8e d8 mov %eax,%ds
1039a0: 8e c0 mov %eax,%es
1039a2: 8e e0 mov %eax,%fs
1039a4: 8e e8 mov %eax,%gs
1039a6: 89 e0 mov %esp,%eax
1039a8: 50 push %eax
001039a9 <isr230.1>:
1039a9: b8 04 3e 10 00 mov $0x103e04,%eax
1039ae: ff d0 call *%eax
1039b0: e9 33 dd ff ff jmp 1016e8 <all_ints>
001039b5 <isr231>:
1039b5: 6a 00 push $0x0
1039b7: 6a e7 push $0xffffffe7
1039b9: 0f a8 push %gs
1039bb: 0f a0 push %fs
1039bd: 06 push %es
1039be: 1e push %ds
1039bf: 60 pusha
1039c0: 66 b8 10 00 mov $0x10,%ax
1039c4: 8e d8 mov %eax,%ds
1039c6: 8e c0 mov %eax,%es
1039c8: 8e e0 mov %eax,%fs
1039ca: 8e e8 mov %eax,%gs
1039cc: 89 e0 mov %esp,%eax
1039ce: 50 push %eax
001039cf <isr231.1>:
1039cf: b8 04 3e 10 00 mov $0x103e04,%eax
1039d4: ff d0 call *%eax
1039d6: e9 0d dd ff ff jmp 1016e8 <all_ints>
001039db <isr232>:
1039db: 6a 00 push $0x0
1039dd: 6a e8 push $0xffffffe8
1039df: 0f a8 push %gs
1039e1: 0f a0 push %fs
1039e3: 06 push %es
1039e4: 1e push %ds
1039e5: 60 pusha
1039e6: 66 b8 10 00 mov $0x10,%ax
1039ea: 8e d8 mov %eax,%ds
1039ec: 8e c0 mov %eax,%es
1039ee: 8e e0 mov %eax,%fs
1039f0: 8e e8 mov %eax,%gs
1039f2: 89 e0 mov %esp,%eax
1039f4: 50 push %eax
001039f5 <isr232.1>:
1039f5: b8 04 3e 10 00 mov $0x103e04,%eax
1039fa: ff d0 call *%eax
1039fc: e9 e7 dc ff ff jmp 1016e8 <all_ints>
00103a01 <isr233>:
103a01: 6a 00 push $0x0
103a03: 6a e9 push $0xffffffe9
103a05: 0f a8 push %gs
103a07: 0f a0 push %fs
103a09: 06 push %es
103a0a: 1e push %ds
103a0b: 60 pusha
103a0c: 66 b8 10 00 mov $0x10,%ax
103a10: 8e d8 mov %eax,%ds
103a12: 8e c0 mov %eax,%es
103a14: 8e e0 mov %eax,%fs
103a16: 8e e8 mov %eax,%gs
103a18: 89 e0 mov %esp,%eax
103a1a: 50 push %eax
00103a1b <isr233.1>:
103a1b: b8 04 3e 10 00 mov $0x103e04,%eax
103a20: ff d0 call *%eax
103a22: e9 c1 dc ff ff jmp 1016e8 <all_ints>
00103a27 <isr234>:
103a27: 6a 00 push $0x0
103a29: 6a ea push $0xffffffea
103a2b: 0f a8 push %gs
103a2d: 0f a0 push %fs
103a2f: 06 push %es
103a30: 1e push %ds
103a31: 60 pusha
103a32: 66 b8 10 00 mov $0x10,%ax
103a36: 8e d8 mov %eax,%ds
103a38: 8e c0 mov %eax,%es
103a3a: 8e e0 mov %eax,%fs
103a3c: 8e e8 mov %eax,%gs
103a3e: 89 e0 mov %esp,%eax
103a40: 50 push %eax
00103a41 <isr234.1>:
103a41: b8 04 3e 10 00 mov $0x103e04,%eax
103a46: ff d0 call *%eax
103a48: e9 9b dc ff ff jmp 1016e8 <all_ints>
00103a4d <isr235>:
103a4d: 6a 00 push $0x0
103a4f: 6a eb push $0xffffffeb
103a51: 0f a8 push %gs
103a53: 0f a0 push %fs
103a55: 06 push %es
103a56: 1e push %ds
103a57: 60 pusha
103a58: 66 b8 10 00 mov $0x10,%ax
103a5c: 8e d8 mov %eax,%ds
103a5e: 8e c0 mov %eax,%es
103a60: 8e e0 mov %eax,%fs
103a62: 8e e8 mov %eax,%gs
103a64: 89 e0 mov %esp,%eax
103a66: 50 push %eax
00103a67 <isr235.1>:
103a67: b8 04 3e 10 00 mov $0x103e04,%eax
103a6c: ff d0 call *%eax
103a6e: e9 75 dc ff ff jmp 1016e8 <all_ints>
00103a73 <isr236>:
103a73: 6a 00 push $0x0
103a75: 6a ec push $0xffffffec
103a77: 0f a8 push %gs
103a79: 0f a0 push %fs
103a7b: 06 push %es
103a7c: 1e push %ds
103a7d: 60 pusha
103a7e: 66 b8 10 00 mov $0x10,%ax
103a82: 8e d8 mov %eax,%ds
103a84: 8e c0 mov %eax,%es
103a86: 8e e0 mov %eax,%fs
103a88: 8e e8 mov %eax,%gs
103a8a: 89 e0 mov %esp,%eax
103a8c: 50 push %eax
00103a8d <isr236.1>:
103a8d: b8 04 3e 10 00 mov $0x103e04,%eax
103a92: ff d0 call *%eax
103a94: e9 4f dc ff ff jmp 1016e8 <all_ints>
00103a99 <isr237>:
103a99: 6a 00 push $0x0
103a9b: 6a ed push $0xffffffed
103a9d: 0f a8 push %gs
103a9f: 0f a0 push %fs
103aa1: 06 push %es
103aa2: 1e push %ds
103aa3: 60 pusha
103aa4: 66 b8 10 00 mov $0x10,%ax
103aa8: 8e d8 mov %eax,%ds
103aaa: 8e c0 mov %eax,%es
103aac: 8e e0 mov %eax,%fs
103aae: 8e e8 mov %eax,%gs
103ab0: 89 e0 mov %esp,%eax
103ab2: 50 push %eax
00103ab3 <isr237.1>:
103ab3: b8 04 3e 10 00 mov $0x103e04,%eax
103ab8: ff d0 call *%eax
103aba: e9 29 dc ff ff jmp 1016e8 <all_ints>
00103abf <isr238>:
103abf: 6a 00 push $0x0
103ac1: 6a ee push $0xffffffee
103ac3: 0f a8 push %gs
103ac5: 0f a0 push %fs
103ac7: 06 push %es
103ac8: 1e push %ds
103ac9: 60 pusha
103aca: 66 b8 10 00 mov $0x10,%ax
103ace: 8e d8 mov %eax,%ds
103ad0: 8e c0 mov %eax,%es
103ad2: 8e e0 mov %eax,%fs
103ad4: 8e e8 mov %eax,%gs
103ad6: 89 e0 mov %esp,%eax
103ad8: 50 push %eax
00103ad9 <isr238.1>:
103ad9: b8 04 3e 10 00 mov $0x103e04,%eax
103ade: ff d0 call *%eax
103ae0: e9 03 dc ff ff jmp 1016e8 <all_ints>
00103ae5 <isr239>:
103ae5: 6a 00 push $0x0
103ae7: 6a ef push $0xffffffef
103ae9: 0f a8 push %gs
103aeb: 0f a0 push %fs
103aed: 06 push %es
103aee: 1e push %ds
103aef: 60 pusha
103af0: 66 b8 10 00 mov $0x10,%ax
103af4: 8e d8 mov %eax,%ds
103af6: 8e c0 mov %eax,%es
103af8: 8e e0 mov %eax,%fs
103afa: 8e e8 mov %eax,%gs
103afc: 89 e0 mov %esp,%eax
103afe: 50 push %eax
00103aff <isr239.1>:
103aff: b8 04 3e 10 00 mov $0x103e04,%eax
103b04: ff d0 call *%eax
103b06: e9 dd db ff ff jmp 1016e8 <all_ints>
00103b0b <isr240>:
103b0b: 6a 00 push $0x0
103b0d: 6a f0 push $0xfffffff0
103b0f: 0f a8 push %gs
103b11: 0f a0 push %fs
103b13: 06 push %es
103b14: 1e push %ds
103b15: 60 pusha
103b16: 66 b8 10 00 mov $0x10,%ax
103b1a: 8e d8 mov %eax,%ds
103b1c: 8e c0 mov %eax,%es
103b1e: 8e e0 mov %eax,%fs
103b20: 8e e8 mov %eax,%gs
103b22: 89 e0 mov %esp,%eax
103b24: 50 push %eax
00103b25 <isr240.1>:
103b25: b8 04 3e 10 00 mov $0x103e04,%eax
103b2a: ff d0 call *%eax
103b2c: e9 b7 db ff ff jmp 1016e8 <all_ints>
00103b31 <isr241>:
103b31: 6a 00 push $0x0
103b33: 6a f1 push $0xfffffff1
103b35: 0f a8 push %gs
103b37: 0f a0 push %fs
103b39: 06 push %es
103b3a: 1e push %ds
103b3b: 60 pusha
103b3c: 66 b8 10 00 mov $0x10,%ax
103b40: 8e d8 mov %eax,%ds
103b42: 8e c0 mov %eax,%es
103b44: 8e e0 mov %eax,%fs
103b46: 8e e8 mov %eax,%gs
103b48: 89 e0 mov %esp,%eax
103b4a: 50 push %eax
00103b4b <isr241.1>:
103b4b: b8 04 3e 10 00 mov $0x103e04,%eax
103b50: ff d0 call *%eax
103b52: e9 91 db ff ff jmp 1016e8 <all_ints>
00103b57 <isr242>:
103b57: 6a 00 push $0x0
103b59: 6a f2 push $0xfffffff2
103b5b: 0f a8 push %gs
103b5d: 0f a0 push %fs
103b5f: 06 push %es
103b60: 1e push %ds
103b61: 60 pusha
103b62: 66 b8 10 00 mov $0x10,%ax
103b66: 8e d8 mov %eax,%ds
103b68: 8e c0 mov %eax,%es
103b6a: 8e e0 mov %eax,%fs
103b6c: 8e e8 mov %eax,%gs
103b6e: 89 e0 mov %esp,%eax
103b70: 50 push %eax
00103b71 <isr242.1>:
103b71: b8 04 3e 10 00 mov $0x103e04,%eax
103b76: ff d0 call *%eax
103b78: e9 6b db ff ff jmp 1016e8 <all_ints>
00103b7d <isr243>:
103b7d: 6a 00 push $0x0
103b7f: 6a f3 push $0xfffffff3
103b81: 0f a8 push %gs
103b83: 0f a0 push %fs
103b85: 06 push %es
103b86: 1e push %ds
103b87: 60 pusha
103b88: 66 b8 10 00 mov $0x10,%ax
103b8c: 8e d8 mov %eax,%ds
103b8e: 8e c0 mov %eax,%es
103b90: 8e e0 mov %eax,%fs
103b92: 8e e8 mov %eax,%gs
103b94: 89 e0 mov %esp,%eax
103b96: 50 push %eax
00103b97 <isr243.1>:
103b97: b8 04 3e 10 00 mov $0x103e04,%eax
103b9c: ff d0 call *%eax
103b9e: e9 45 db ff ff jmp 1016e8 <all_ints>
00103ba3 <isr244>:
103ba3: 6a 00 push $0x0
103ba5: 6a f4 push $0xfffffff4
103ba7: 0f a8 push %gs
103ba9: 0f a0 push %fs
103bab: 06 push %es
103bac: 1e push %ds
103bad: 60 pusha
103bae: 66 b8 10 00 mov $0x10,%ax
103bb2: 8e d8 mov %eax,%ds
103bb4: 8e c0 mov %eax,%es
103bb6: 8e e0 mov %eax,%fs
103bb8: 8e e8 mov %eax,%gs
103bba: 89 e0 mov %esp,%eax
103bbc: 50 push %eax
00103bbd <isr244.1>:
103bbd: b8 04 3e 10 00 mov $0x103e04,%eax
103bc2: ff d0 call *%eax
103bc4: e9 1f db ff ff jmp 1016e8 <all_ints>
00103bc9 <isr245>:
103bc9: 6a 00 push $0x0
103bcb: 6a f5 push $0xfffffff5
103bcd: 0f a8 push %gs
103bcf: 0f a0 push %fs
103bd1: 06 push %es
103bd2: 1e push %ds
103bd3: 60 pusha
103bd4: 66 b8 10 00 mov $0x10,%ax
103bd8: 8e d8 mov %eax,%ds
103bda: 8e c0 mov %eax,%es
103bdc: 8e e0 mov %eax,%fs
103bde: 8e e8 mov %eax,%gs
103be0: 89 e0 mov %esp,%eax
103be2: 50 push %eax
00103be3 <isr245.1>:
103be3: b8 04 3e 10 00 mov $0x103e04,%eax
103be8: ff d0 call *%eax
103bea: e9 f9 da ff ff jmp 1016e8 <all_ints>
00103bef <isr246>:
103bef: 6a 00 push $0x0
103bf1: 6a f6 push $0xfffffff6
103bf3: 0f a8 push %gs
103bf5: 0f a0 push %fs
103bf7: 06 push %es
103bf8: 1e push %ds
103bf9: 60 pusha
103bfa: 66 b8 10 00 mov $0x10,%ax
103bfe: 8e d8 mov %eax,%ds
103c00: 8e c0 mov %eax,%es
103c02: 8e e0 mov %eax,%fs
103c04: 8e e8 mov %eax,%gs
103c06: 89 e0 mov %esp,%eax
103c08: 50 push %eax
00103c09 <isr246.1>:
103c09: b8 04 3e 10 00 mov $0x103e04,%eax
103c0e: ff d0 call *%eax
103c10: e9 d3 da ff ff jmp 1016e8 <all_ints>
00103c15 <isr247>:
103c15: 6a 00 push $0x0
103c17: 6a f7 push $0xfffffff7
103c19: 0f a8 push %gs
103c1b: 0f a0 push %fs
103c1d: 06 push %es
103c1e: 1e push %ds
103c1f: 60 pusha
103c20: 66 b8 10 00 mov $0x10,%ax
103c24: 8e d8 mov %eax,%ds
103c26: 8e c0 mov %eax,%es
103c28: 8e e0 mov %eax,%fs
103c2a: 8e e8 mov %eax,%gs
103c2c: 89 e0 mov %esp,%eax
103c2e: 50 push %eax
00103c2f <isr247.1>:
103c2f: b8 04 3e 10 00 mov $0x103e04,%eax
103c34: ff d0 call *%eax
103c36: e9 ad da ff ff jmp 1016e8 <all_ints>
00103c3b <isr248>:
103c3b: 6a 00 push $0x0
103c3d: 6a f8 push $0xfffffff8
103c3f: 0f a8 push %gs
103c41: 0f a0 push %fs
103c43: 06 push %es
103c44: 1e push %ds
103c45: 60 pusha
103c46: 66 b8 10 00 mov $0x10,%ax
103c4a: 8e d8 mov %eax,%ds
103c4c: 8e c0 mov %eax,%es
103c4e: 8e e0 mov %eax,%fs
103c50: 8e e8 mov %eax,%gs
103c52: 89 e0 mov %esp,%eax
103c54: 50 push %eax
00103c55 <isr248.1>:
103c55: b8 04 3e 10 00 mov $0x103e04,%eax
103c5a: ff d0 call *%eax
103c5c: e9 87 da ff ff jmp 1016e8 <all_ints>
00103c61 <isr249>:
103c61: 6a 00 push $0x0
103c63: 6a f9 push $0xfffffff9
103c65: 0f a8 push %gs
103c67: 0f a0 push %fs
103c69: 06 push %es
103c6a: 1e push %ds
103c6b: 60 pusha
103c6c: 66 b8 10 00 mov $0x10,%ax
103c70: 8e d8 mov %eax,%ds
103c72: 8e c0 mov %eax,%es
103c74: 8e e0 mov %eax,%fs
103c76: 8e e8 mov %eax,%gs
103c78: 89 e0 mov %esp,%eax
103c7a: 50 push %eax
00103c7b <isr249.1>:
103c7b: b8 04 3e 10 00 mov $0x103e04,%eax
103c80: ff d0 call *%eax
103c82: e9 61 da ff ff jmp 1016e8 <all_ints>
00103c87 <isr250>:
103c87: 6a 00 push $0x0
103c89: 6a fa push $0xfffffffa
103c8b: 0f a8 push %gs
103c8d: 0f a0 push %fs
103c8f: 06 push %es
103c90: 1e push %ds
103c91: 60 pusha
103c92: 66 b8 10 00 mov $0x10,%ax
103c96: 8e d8 mov %eax,%ds
103c98: 8e c0 mov %eax,%es
103c9a: 8e e0 mov %eax,%fs
103c9c: 8e e8 mov %eax,%gs
103c9e: 89 e0 mov %esp,%eax
103ca0: 50 push %eax
00103ca1 <isr250.1>:
103ca1: b8 04 3e 10 00 mov $0x103e04,%eax
103ca6: ff d0 call *%eax
103ca8: e9 3b da ff ff jmp 1016e8 <all_ints>
00103cad <isr251>:
103cad: 6a 00 push $0x0
103caf: 6a fb push $0xfffffffb
103cb1: 0f a8 push %gs
103cb3: 0f a0 push %fs
103cb5: 06 push %es
103cb6: 1e push %ds
103cb7: 60 pusha
103cb8: 66 b8 10 00 mov $0x10,%ax
103cbc: 8e d8 mov %eax,%ds
103cbe: 8e c0 mov %eax,%es
103cc0: 8e e0 mov %eax,%fs
103cc2: 8e e8 mov %eax,%gs
103cc4: 89 e0 mov %esp,%eax
103cc6: 50 push %eax
00103cc7 <isr251.1>:
103cc7: b8 04 3e 10 00 mov $0x103e04,%eax
103ccc: ff d0 call *%eax
103cce: e9 15 da ff ff jmp 1016e8 <all_ints>
00103cd3 <isr252>:
103cd3: 6a 00 push $0x0
103cd5: 6a fc push $0xfffffffc
103cd7: 0f a8 push %gs
103cd9: 0f a0 push %fs
103cdb: 06 push %es
103cdc: 1e push %ds
103cdd: 60 pusha
103cde: 66 b8 10 00 mov $0x10,%ax
103ce2: 8e d8 mov %eax,%ds
103ce4: 8e c0 mov %eax,%es
103ce6: 8e e0 mov %eax,%fs
103ce8: 8e e8 mov %eax,%gs
103cea: 89 e0 mov %esp,%eax
103cec: 50 push %eax
00103ced <isr252.1>:
103ced: b8 04 3e 10 00 mov $0x103e04,%eax
103cf2: ff d0 call *%eax
103cf4: e9 ef d9 ff ff jmp 1016e8 <all_ints>
00103cf9 <isr253>:
103cf9: 6a 00 push $0x0
103cfb: 6a fd push $0xfffffffd
103cfd: 0f a8 push %gs
103cff: 0f a0 push %fs
103d01: 06 push %es
103d02: 1e push %ds
103d03: 60 pusha
103d04: 66 b8 10 00 mov $0x10,%ax
103d08: 8e d8 mov %eax,%ds
103d0a: 8e c0 mov %eax,%es
103d0c: 8e e0 mov %eax,%fs
103d0e: 8e e8 mov %eax,%gs
103d10: 89 e0 mov %esp,%eax
103d12: 50 push %eax
00103d13 <isr253.1>:
103d13: b8 04 3e 10 00 mov $0x103e04,%eax
103d18: ff d0 call *%eax
103d1a: e9 c9 d9 ff ff jmp 1016e8 <all_ints>
00103d1f <isr254>:
103d1f: 6a 00 push $0x0
103d21: 6a fe push $0xfffffffe
103d23: 0f a8 push %gs
103d25: 0f a0 push %fs
103d27: 06 push %es
103d28: 1e push %ds
103d29: 60 pusha
103d2a: 66 b8 10 00 mov $0x10,%ax
103d2e: 8e d8 mov %eax,%ds
103d30: 8e c0 mov %eax,%es
103d32: 8e e0 mov %eax,%fs
103d34: 8e e8 mov %eax,%gs
103d36: 89 e0 mov %esp,%eax
103d38: 50 push %eax
00103d39 <isr254.1>:
103d39: b8 04 3e 10 00 mov $0x103e04,%eax
103d3e: ff d0 call *%eax
103d40: e9 a3 d9 ff ff jmp 1016e8 <all_ints>
00103d45 <isr255>:
103d45: 6a 00 push $0x0
103d47: 6a ff push $0xffffffff
103d49: 0f a8 push %gs
103d4b: 0f a0 push %fs
103d4d: 06 push %es
103d4e: 1e push %ds
103d4f: 60 pusha
103d50: 66 b8 10 00 mov $0x10,%ax
103d54: 8e d8 mov %eax,%ds
103d56: 8e c0 mov %eax,%es
103d58: 8e e0 mov %eax,%fs
103d5a: 8e e8 mov %eax,%gs
103d5c: 89 e0 mov %esp,%eax
103d5e: 50 push %eax
00103d5f <isr255.1>:
103d5f: b8 04 3e 10 00 mov $0x103e04,%eax
103d64: ff d0 call *%eax
103d66: e9 7d d9 ff ff jmp 1016e8 <all_ints>
...
00103d6c <kprintf_help>:
/**
* printf/kprintf helper
*/
static int kprintf_help(unsigned c, void **ptr)
{
103d6c: 55 push %ebp
103d6d: 89 e5 mov %esp,%ebp
103d6f: 83 ec 14 sub $0x14,%esp
/**
* Leave this for now
*/
ptr = ptr;
putch(c);
103d72: ff 75 08 pushl 0x8(%ebp)
103d75: e8 86 0d 00 00 call 104b00 <putch>
return 0;
}
103d7a: 31 c0 xor %eax,%eax
103d7c: c9 leave
103d7d: c3 ret
103d7e: 89 f6 mov %esi,%esi
00103d80 <kprintf>:
/**
* Format output and print it to stdout (vtty0)
* Just like on any other operating system
*/
/*void printf(const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
(void)do_printf(fmt, args, kprintf_help, NULL);
va_end(args);
}*/
void kprintf(const char *fmt, ...)
{
103d80: 55 push %ebp
103d81: 89 e5 mov %esp,%ebp
103d83: 83 ec 08 sub $0x8,%esp
va_list args;
va_start(args, fmt);
(void)do_printf(fmt, args, kprintf_help, NULL);
103d86: 6a 00 push $0x0
103d88: 68 6c 3d 10 00 push $0x103d6c
103d8d: 8d 45 0c lea 0xc(%ebp),%eax
103d90: 50 push %eax
103d91: ff 75 08 pushl 0x8(%ebp)
103d94: e8 37 0f 00 00 call 104cd0 <do_printf>
va_end(args);
}
103d99: c9 leave
103d9a: c3 ret
103d9b: 90 nop
00103d9c <printk>:
/**
* Format output and print it to stdout (vtty0)
* Just like on any other operating system
*/
void printk(const char *fmt, ...)
{
103d9c: 55 push %ebp
103d9d: 89 e5 mov %esp,%ebp
103d9f: 83 ec 08 sub $0x8,%esp
va_list args;
/**
* TODO
*
* Select vtty0
*/
va_start(args, fmt);
(void)do_printf(fmt, args, kprintf_help, NULL);
103da2: 6a 00 push $0x0
103da4: 68 6c 3d 10 00 push $0x103d6c
103da9: 8d 45 0c lea 0xc(%ebp),%eax
103dac: 50 push %eax
103dad: ff 75 08 pushl 0x8(%ebp)
103db0: e8 1b 0f 00 00 call 104cd0 <do_printf>
va_end(args);
}
103db5: c9 leave
103db6: c3 ret
103db7: 90 nop
00103db8 <panic>:
/**
* Oh yeah, the fun function ;)
*/
void panic(const char *fmt, ...)
{
103db8: 55 push %ebp
103db9: 89 e5 mov %esp,%ebp
103dbb: 53 push %ebx
103dbc: 50 push %eax
va_list args;
disable(); /* interrupts off */
103dbd: e8 06 0f 00 00 call 104cc8 <disable>
va_start(args, fmt);
_vc[0].attrib = 15;
printf("\n\npanic: ");
103dc2: 83 ec 0c sub $0xc,%esp
103dc5: 68 cd 58 10 00 push $0x1058cd
103dca: c7 05 f8 a2 19 00 0f movl $0xf,0x19a2f8
103dd1: 00 00 00
103dd4: e8 fb 12 00 00 call 1050d4 <printf>
(void)do_printf(fmt, args, kprintf_help, NULL);
103dd9: 6a 00 push $0x0
103ddb: 68 6c 3d 10 00 push $0x103d6c
103de0: 8d 5d 0c lea 0xc(%ebp),%ebx
103de3: 53 push %ebx
103de4: ff 75 08 pushl 0x8(%ebp)
103de7: e8 e4 0e 00 00 call 104cd0 <do_printf>
printf("\n\nSystem halted.");
103dec: 83 c4 14 add $0x14,%esp
103def: 68 d7 58 10 00 push $0x1058d7
103df4: e8 db 12 00 00 call 1050d4 <printf>
__asm__ __volatile__ ("hlt");
103df9: f4 hlt
while(1)
103dfa: 83 c4 10 add $0x10,%esp
103dfd: 8d 76 00 lea 0x0(%esi),%esi
103e00: eb fe jmp 103e00 <panic+0x48>
103e02: 89 f6 mov %esi,%esi
00103e04 <fault>:
/* freeze */;
}
/**
* Called when a kernel fault is detected. This does not
* (normally) get called when something goes awry in
* user-space, therefore it is designed for kernel-space
*/
void fault(regs_t *regs)
{
103e04: 55 push %ebp
103e05: 89 e5 mov %esp,%ebp
103e07: 53 push %ebx
103e08: 52 push %edx
103e09: 8b 5d 08 mov 0x8(%ebp),%ebx
struct exception
{
char *message;
int signal;
int processor;
};
static const struct exception ex[] =
{
{"Divide error", SIGFPE, 86},
{"Debug exception", SIGTRAP, 86},
{"Nonmaskable interrupt (NMI)", SIGBUS, 86},
{"Breakpoint (INT3)", SIGEMT, 86},
{"Overflow (INTO)", SIGFPE, 186},
{"Bounds check", SIGFPE, 186},
{"Invalid opcode", SIGILL, 186},
{"Coprocessor not available", SIGFPE, 186},
{"Double fault", SIGBUS, 286},
{"Coprocessor segment overrun", SIGSEGV, 286},
{"Invalid TSS", SIGSEGV, 286},
{"Segment not present", SIGSEGV, 286},
{"Stack exception", SIGSEGV, 286},
{"General Protection Fault", SIGSEGV, 286},
{"Page fault", SIGSEGV, 386},
{NULL, SIGILL, 0},
{"Coprocessor error", SIGFPE, 386},
{"Alignment check",0,0},
{"??",0,0},
{"??",0,0},
{"??",0,0},
{"??",0,0},
{"??",0,0},
{"??",0,0},
{"??",0,0},
{"??",0,0},
{"??",0,0},
{"??",0,0},
{"??",0,0},
{"??",0,0},
{"??",0,0},
{"??",0,0},
{"IRQ0",0,0},
{"IRQ1",0,0},
{"IRQ2",0,0},
{"IRQ3",0,0},
{"IRQ4",0,0},
{"IRQ5",0,0},
{"IRQ6",0,0},
{"IRQ7",0,0},
{"IRQ8",0,0},
{"IRQ9",0,0},
{"IRQ10",0,0},
{"IRQ11",0,0},
{"IRQ12",0,0},
{"IRQ13",0,0},
{"IRQ14",0,0},
{"IRQ15",0,0},
{"syscall",0,0}
};
switch(regs->which_int)
103e0c: 83 7b 30 20 cmpl $0x20,0x30(%ebx)
103e10: 74 6e je 103e80 <fault+0x7c>
{
/**
* this handler installed at compile-time
* Keyboard handler is installed at run-time (see below)
*/
case 0x20: /* timer IRQ 0 */
//blink();
/**
* reset hardware interrupt at 8259 chip
*/
outportb(0x20, 0x20);
break;
default:
_vc[0].attrib = 15;
printf("\n\npanic: Exception 0x%08X", regs->which_int);
103e12: 83 ec 08 sub $0x8,%esp
103e15: c7 05 f8 a2 19 00 0f movl $0xf,0x19a2f8
103e1c: 00 00 00
103e1f: ff 73 30 pushl 0x30(%ebx)
103e22: 68 79 5a 10 00 push $0x105a79
103e27: e8 a8 12 00 00 call 1050d4 <printf>
if(regs->which_int <= sizeof(ex) / sizeof(ex[0].message))
103e2c: 8b 43 30 mov 0x30(%ebx),%eax
103e2f: 83 c4 10 add $0x10,%esp
103e32: 3d 93 00 00 00 cmp $0x93,%eax
103e37: 76 2b jbe 103e64 <fault+0x60>
printf(" (%s)", ex[regs->which_int].message);
printf("\n");
103e39: 83 ec 0c sub $0xc,%esp
103e3c: 68 f8 5a 10 00 push $0x105af8
103e41: e8 8e 12 00 00 call 1050d4 <printf>
dump_regs(regs);
103e46: 89 1c 24 mov %ebx,(%esp,1)
103e49: e8 7e c3 ff ff call 1001cc <dump_regs>
printf("\n\nSystem halted.");
103e4e: c7 04 24 d7 58 10 00 movl $0x1058d7,(%esp,1)
103e55: e8 7a 12 00 00 call 1050d4 <printf>
__asm__ __volatile__ ("hlt");
103e5a: f4 hlt
break;
103e5b: 83 c4 10 add $0x10,%esp
}
}
103e5e: 8b 5d fc mov 0xfffffffc(%ebp),%ebx
103e61: c9 leave
103e62: c3 ret
103e63: 90 nop
103e64: 83 ec 08 sub $0x8,%esp
103e67: 8d 04 40 lea (%eax,%eax,2),%eax
103e6a: ff 34 85 00 5b 10 00 pushl 0x105b00(,%eax,4)
103e71: 68 93 5a 10 00 push $0x105a93
103e76: e8 59 12 00 00 call 1050d4 <printf>
103e7b: 83 c4 10 add $0x10,%esp
103e7e: eb b9 jmp 103e39 <fault+0x35>
103e80: 83 ec 08 sub $0x8,%esp
103e83: 6a 20 push $0x20
103e85: 6a 20 push $0x20
103e87: e8 28 12 00 00 call 1050b4 <outportb>
103e8c: eb cd jmp 103e5b <fault+0x57>
103e8e: 89 f6 mov %esi,%esi
00103e90 <init_8259s>:
/**
* ??
*/
static void init_8259s(void)
{
103e90: 55 push %ebp
103e91: 89 e5 mov %esp,%ebp
103e93: 83 ec 10 sub $0x10,%esp
static const unsigned irq0_int = 0x20, irq8_int = 0x28;
/**
* Initialization Control Word #1 (ICW1)
*/
outportb(0x20, 0x11);
103e96: 6a 11 push $0x11
103e98: 6a 20 push $0x20
103e9a: e8 15 12 00 00 call 1050b4 <outportb>
outportb(0xA0, 0x11);
103e9f: 59 pop %ecx
103ea0: 58 pop %eax
103ea1: 6a 11 push $0x11
103ea3: 68 a0 00 00 00 push $0xa0
103ea8: e8 07 12 00 00 call 1050b4 <outportb>
/**
* ICW2:
* route IRQs 0-7 to INTs 20h-27h
*/
outportb(0x21, irq0_int);
103ead: 58 pop %eax
103eae: 5a pop %edx
103eaf: 6a 20 push $0x20
103eb1: 6a 21 push $0x21
103eb3: e8 fc 11 00 00 call 1050b4 <outportb>
/**
* route IRQs 8-15 to INTs 28h-2Fh
*/
outportb(0xA1, irq8_int);
103eb8: 59 pop %ecx
103eb9: 58 pop %eax
103eba: 6a 28 push $0x28
103ebc: 68 a1 00 00 00 push $0xa1
103ec1: e8 ee 11 00 00 call 1050b4 <outportb>
/**
* ICW3
*/
outportb(0x21, 0x04);
103ec6: 58 pop %eax
103ec7: 5a pop %edx
103ec8: 6a 04 push $0x4
103eca: 6a 21 push $0x21
103ecc: e8 e3 11 00 00 call 1050b4 <outportb>
outportb(0xA1, 0x02);
103ed1: 59 pop %ecx
103ed2: 58 pop %eax
103ed3: 6a 02 push $0x2
103ed5: 68 a1 00 00 00 push $0xa1
103eda: e8 d5 11 00 00 call 1050b4 <outportb>
/**
* ICW4
*/
outportb(0x21, 0x01);
103edf: 58 pop %eax
103ee0: 5a pop %edx
103ee1: 6a 01 push $0x1
103ee3: 6a 21 push $0x21
103ee5: e8 ca 11 00 00 call 1050b4 <outportb>
outportb(0xA1, 0x01);
103eea: 59 pop %ecx
103eeb: 58 pop %eax
103eec: 6a 01 push $0x1
103eee: 68 a1 00 00 00 push $0xa1
103ef3: e8 bc 11 00 00 call 1050b4 <outportb>
/**
* enable IRQ0 (timer) and IRQ1 (keyboard)
*/
outportb(0x21, ~0x03);
103ef8: 58 pop %eax
103ef9: 5a pop %edx
103efa: 6a fc push $0xfffffffc
103efc: 6a 21 push $0x21
103efe: e8 b1 11 00 00 call 1050b4 <outportb>
outportb(0xA1, ~0x00);
103f03: 59 pop %ecx
103f04: 58 pop %eax
103f05: 6a ff push $0xffffffff
103f07: 68 a1 00 00 00 push $0xa1
103f0c: e8 a3 11 00 00 call 1050b4 <outportb>
}
103f11: c9 leave
103f12: c3 ret
103f13: 90 nop
00103f14 <dump_heap>:
/**
* MinGW32
*/
#ifdef __WIN32__
#if __GNUC__<3
#error Do not use MinGW GCC 2.x with NASM
#endif
int __main(void) { return 0; }
void _alloca(void) { }
#endif
/**
* malloc, realloc, free, etc
*/
static char *g_heap_bot, *g_kbrk, *g_heap_top;
static void dump_heap(void)
{
103f14: 55 push %ebp
103f15: 89 e5 mov %esp,%ebp
103f17: 57 push %edi
103f18: 56 push %esi
103f19: 53 push %ebx
103f1a: 83 ec 18 sub $0x18,%esp
unsigned blks_used = 0, blks_free = 0;
size_t bytes_used = 0, bytes_free = 0;
malloc_t *m;
int total;
kprintf("===============================================\n");
103f1d: 68 60 5d 10 00 push $0x105d60
103f22: c7 45 f0 00 00 00 00 movl $0x0,0xfffffff0(%ebp)
103f29: c7 45 ec 00 00 00 00 movl $0x0,0xffffffec(%ebp)
103f30: e8 4b fe ff ff call 103d80 <kprintf>
for(m = (malloc_t *)g_heap_bot; m != NULL; m = m->next)
103f35: 8b 1d e0 36 18 00 mov 0x1836e0,%ebx
103f3b: 31 ff xor %edi,%edi
103f3d: 31 f6 xor %esi,%esi
103f3f: 83 c4 10 add $0x10,%esp
103f42: 85 db test %ebx,%ebx
103f44: 74 39 je 103f7f <dump_heap+0x6b>
103f46: 89 f6 mov %esi,%esi
{
printk("block %5p: %6u bytes %s\n", m,
103f48: f6 43 09 80 testb $0x80,0x9(%ebx)
103f4c: 0f 84 be 00 00 00 je 104010 <dump_heap+0xfc>
103f52: b8 99 5a 10 00 mov $0x105a99,%eax
103f57: 50 push %eax
103f58: ff 33 pushl (%ebx)
103f5a: 53 push %ebx
103f5b: 68 9e 5a 10 00 push $0x105a9e
103f60: e8 37 fe ff ff call 103d9c <printk>
m->size, m->used ? "used" : "free");
if(m->used)
103f65: 83 c4 10 add $0x10,%esp
103f68: f6 43 09 80 testb $0x80,0x9(%ebx)
103f6c: 0f 84 92 00 00 00 je 104004 <dump_heap+0xf0>
{
blks_used++;
bytes_used += m->size;
103f72: 8b 03 mov (%ebx),%eax
103f74: 47 inc %edi
103f75: 01 45 f0 add %eax,0xfffffff0(%ebp)
103f78: 8b 5b 04 mov 0x4(%ebx),%ebx
103f7b: 85 db test %ebx,%ebx
103f7d: 75 c9 jne 103f48 <dump_heap+0x34>
}
else
{
blks_free++;
bytes_free += m->size;
}
}
kprintf("blocks: %6u used, %6u free, %6u total\n", blks_used,
103f7f: 8d 1c 3e lea (%esi,%edi,1),%ebx
103f82: 53 push %ebx
103f83: 56 push %esi
103f84: 57 push %edi
103f85: 68 a0 5d 10 00 push $0x105da0
103f8a: e8 f1 fd ff ff call 103d80 <kprintf>
blks_free, blks_used + blks_free);
kprintf(" bytes: %6u used, %6u free, %6u total\n", bytes_used,
103f8f: 8b 75 f0 mov 0xfffffff0(%ebp),%esi
103f92: 03 75 ec add 0xffffffec(%ebp),%esi
103f95: 56 push %esi
103f96: ff 75 ec pushl 0xffffffec(%ebp)
103f99: ff 75 f0 pushl 0xfffffff0(%ebp)
103f9c: 68 e0 5d 10 00 push $0x105de0
103fa1: e8 da fd ff ff call 103d80 <kprintf>
bytes_free, bytes_used + bytes_free);
kprintf("g_heap_bot=0x%p, g_kbrk=0x%p, g_heap_top=0x%p\n",
103fa6: 83 c4 20 add $0x20,%esp
103fa9: ff 35 e8 36 18 00 pushl 0x1836e8
103faf: ff 35 e4 36 18 00 pushl 0x1836e4
103fb5: ff 35 e0 36 18 00 pushl 0x1836e0
103fbb: 68 20 5e 10 00 push $0x105e20
103fc0: e8 bb fd ff ff call 103d80 <kprintf>
g_heap_bot, g_kbrk, g_heap_top);
total = (bytes_used + bytes_free) +
103fc5: 8d 1c 5b lea (%ebx,%ebx,2),%ebx
(blks_used + blks_free) * sizeof(malloc_t);
if(total != g_kbrk - g_heap_bot)
103fc8: a1 e4 36 18 00 mov 0x1836e4,%eax
103fcd: 8d 1c 9e lea (%esi,%ebx,4),%ebx
103fd0: 2b 05 e0 36 18 00 sub 0x1836e0,%eax
103fd6: 83 c4 10 add $0x10,%esp
103fd9: 39 c3 cmp %eax,%ebx
103fdb: 74 10 je 103fed <dump_heap+0xd9>
kprintf("*** some heap memory is not accounted for\n");
103fdd: 83 ec 0c sub $0xc,%esp
103fe0: 68 60 5e 10 00 push $0x105e60
103fe5: e8 96 fd ff ff call 103d80 <kprintf>
103fea: 83 c4 10 add $0x10,%esp
kprintf("===============================================\n");
103fed: 83 ec 0c sub $0xc,%esp
103ff0: 68 60 5d 10 00 push $0x105d60
103ff5: e8 86 fd ff ff call 103d80 <kprintf>
}
103ffa: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
103ffd: 5b pop %ebx
103ffe: 5e pop %esi
103fff: 5f pop %edi
104000: c9 leave
104001: c3 ret
104002: 89 f6 mov %esi,%esi
104004: 8b 03 mov (%ebx),%eax
104006: 46 inc %esi
104007: 01 45 ec add %eax,0xffffffec(%ebp)
10400a: e9 69 ff ff ff jmp 103f78 <dump_heap+0x64>
10400f: 90 nop
104010: b8 b7 5a 10 00 mov $0x105ab7,%eax
104015: e9 3d ff ff ff jmp 103f57 <dump_heap+0x43>
10401a: 89 f6 mov %esi,%esi
0010401c <dumpheapk>:
void dumpheapk(void)
{
10401c: 55 push %ebp
10401d: 89 e5 mov %esp,%ebp
dump_heap();
10401f: c9 leave
104020: e9 ef fe ff ff jmp 103f14 <dump_heap>
104025: 8d 76 00 lea 0x0(%esi),%esi
00104028 <kbrk>:
}
/**
* POSIX sbrk() looks like this
* void *sbrk(int incr);
*
* Mine is a bit different so I can signal the calling function
* if more memory than desired was allocated (e.g. in a system with paging)
* If your kbrk()/sbrk() always allocates the amount of memory you ask for,
* this code can be easily changed.
*
* int brk( void *sbrk( void *kbrk(
* function void *adr); int delta); int *delta);
* ---------------------- ------------ ------------ -------------
* POSIX? yes yes NO
* return value if error -1 -1 NULL
* get break value . sbrk(0) int x=0; kbrk(&x);
* set break value to X brk(X) sbrk(X - sbrk(0)) int x=X, y=0; kbrk(&x) - kbrk(&y);
* enlarge heap by N bytes . sbrk(+N) int x=N; kbrk(&x);
* shrink heap by N bytes . sbrk(-N) int x=-N; kbrk(&x);
* can you tell if you're
* given more memory
* than you wanted? no no yes
*/
static void *kbrk(int *delta)
{
static char heap[HEAP_SIZE];
char *new_brk, *old_brk;
/**
* heap doesn't exist yet
*/
if(g_heap_bot == NULL)
104028: 8b 0d e0 36 18 00 mov 0x1836e0,%ecx
10402e: 55 push %ebp
10402f: 85 c9 test %ecx,%ecx
104031: 89 e5 mov %esp,%ebp
104033: 53 push %ebx
104034: 75 1f jne 104055 <kbrk+0x2d>
{
g_heap_bot = g_kbrk = heap;
104036: b9 c0 95 10 00 mov $0x1095c0,%ecx
10403b: c7 05 e4 36 18 00 c0 movl $0x1095c0,0x1836e4
104042: 95 10 00
104045: 89 0d e0 36 18 00 mov %ecx,0x1836e0
g_heap_top = g_heap_bot + HEAP_SIZE;
10404b: c7 05 e8 36 18 00 e0 movl $0x1836e0,0x1836e8
104052: 36 18 00
}
new_brk = g_kbrk + (*delta);
104055: 8b 1d e4 36 18 00 mov 0x1836e4,%ebx
10405b: 8b 45 08 mov 0x8(%ebp),%eax
10405e: 89 da mov %ebx,%edx
104060: 03 10 add (%eax),%edx
/**
* too low: return NULL
*/
if(new_brk < g_heap_bot)
104062: 31 c0 xor %eax,%eax
104064: 39 ca cmp %ecx,%edx
104066: 72 10 jb 104078 <kbrk+0x50>
return NULL;
/**
* too high: return NULL
*/
if(new_brk >= g_heap_top)
104068: 3b 15 e8 36 18 00 cmp 0x1836e8,%edx
10406e: 73 08 jae 104078 <kbrk+0x50>
return NULL;
/**
* success: adjust brk value...
*/
old_brk = g_kbrk;
g_kbrk = new_brk;
104070: 89 15 e4 36 18 00 mov %edx,0x1836e4
/**
* ...return actual delta... (for this sbrk(), they are the same)
* (*delta) = (*delta);
* ...return old brk value
*/
return old_brk;
104076: 89 d8 mov %ebx,%eax
}
104078: 8b 1c 24 mov (%esp,1),%ebx
10407b: c9 leave
10407c: c3 ret
10407d: 8d 76 00 lea 0x0(%esi),%esi
00104080 <kmalloc>:
/**
* malloc() and free() use g_heap_bot, but not g_kbrk nor g_heap_top
*/
void *kmalloc(size_t size)
{
104080: 55 push %ebp
104081: 89 e5 mov %esp,%ebp
104083: 57 push %edi
104084: 56 push %esi
104085: 53 push %ebx
104086: 83 ec 0c sub $0xc,%esp
104089: 8b 7d 08 mov 0x8(%ebp),%edi
unsigned total_size;
malloc_t *m, *n;
int delta;
if(size == 0)
10408c: 31 c0 xor %eax,%eax
10408e: 85 ff test %edi,%edi
104090: 0f 84 af 00 00 00 je 104145 <kmalloc+0xc5>
return NULL;
total_size = size + sizeof(malloc_t);
/**
* search heap for free block (FIRST FIT)
*/
m = (malloc_t *)g_heap_bot;
104096: 8b 1d e0 36 18 00 mov 0x1836e0,%ebx
/**
* g_heap_bot == 0 == NULL if heap does not yet exist
*/
if(m != NULL)
10409c: 85 db test %ebx,%ebx
10409e: 8d 77 0c lea 0xc(%edi),%esi
1040a1: 74 35 je 1040d8 <kmalloc+0x58>
{
if(m->magic != MALLOC_MAGIC)
1040a3: 0f b7 43 08 movzwl 0x8(%ebx),%eax
1040a7: 25 ff 7f 00 00 and $0x7fff,%eax
1040ac: 3d 92 6d 00 00 cmp $0x6d92,%eax
1040b1: 0f 85 e5 00 00 00 jne 10419c <kmalloc+0x11c>
{
/*printf("*** kernel heap is corrupt in kmalloc()\n");*/
panic("kernel heap is corrupt in malloc()");
return NULL;
}
for(; m->next != NULL; m = m->next)
1040b7: 8b 43 04 mov 0x4(%ebx),%eax
1040ba: 85 c0 test %eax,%eax
1040bc: 74 1a je 1040d8 <kmalloc+0x58>
1040be: 89 f6 mov %esi,%esi
{
if(m->used)
1040c0: 8a 53 09 mov 0x9(%ebx),%dl
1040c3: f6 c2 80 test $0x80,%dl
1040c6: 0f 84 8c 00 00 00 je 104158 <kmalloc+0xd8>
1040cc: 89 c3 mov %eax,%ebx
1040ce: 8b 40 04 mov 0x4(%eax),%eax
1040d1: 85 c0 test %eax,%eax
1040d3: 75 eb jne 1040c0 <kmalloc+0x40>
1040d5: 8d 76 00 lea 0x0(%esi),%esi
continue;
/**
* size == m->size is a perfect fit
*/
if(size == m->size)
m->used = 1;
else
{
/**
* otherwise, we need an extra sizeof(malloc_t) bytes for the header
* of a second, free block
*/
if(total_size > m->size)
continue;
/**
* create a new, smaller free block after this one
*/
n = (malloc_t *)((char *)m + total_size);
n->size = m->size - total_size;
n->next = m->next;
n->magic = MALLOC_MAGIC;
n->used = 0;
/**
* reduce the size of this block and mark it used
*/
m->size = size;
m->next = n;
m->used = 1;
}
return (char *)m + sizeof(malloc_t);
}
}
/**
* use kbrk() to enlarge (or create!) heap
*/
delta = total_size;
n = kbrk(&delta);
1040d8: 83 ec 0c sub $0xc,%esp
1040db: 8d 45 f0 lea 0xfffffff0(%ebp),%eax
1040de: 50 push %eax
1040df: 89 75 f0 mov %esi,0xfffffff0(%ebp)
1040e2: e8 41 ff ff ff call 104028 <kbrk>
1040e7: 89 c2 mov %eax,%edx
/**
* uh-oh
*/
if(n == NULL)
1040e9: 83 c4 10 add $0x10,%esp
1040ec: 31 c0 xor %eax,%eax
1040ee: 85 d2 test %edx,%edx
1040f0: 74 53 je 104145 <kmalloc+0xc5>
return NULL;
if(m != NULL)
1040f2: 85 db test %ebx,%ebx
1040f4: 74 03 je 1040f9 <kmalloc+0x79>
m->next = n;
1040f6: 89 53 04 mov %edx,0x4(%ebx)
n->size = size;
n->magic = MALLOC_MAGIC;
1040f9: 66 8b 42 08 mov 0x8(%edx),%ax
1040fd: 25 00 80 ff ff and $0xffff8000,%eax
104102: 0d 92 6d 00 00 or $0x6d92,%eax
104107: 66 89 42 08 mov %ax,0x8(%edx)
n->used = 1;
10410b: 80 4a 09 80 orb $0x80,0x9(%edx)
/**
* did kbrk() return the exact amount of memory we wanted?
* cast to make "gcc -Wall -W ..." shut the hell up
*/
if((int)total_size == delta)
10410f: 8b 45 f0 mov 0xfffffff0(%ebp),%eax
104112: 39 c6 cmp %eax,%esi
104114: 89 3a mov %edi,(%edx)
104116: 74 35 je 10414d <kmalloc+0xcd>
n->next = NULL;
else
{
/**
* it returned more than we wanted (it will never return less):
* create a new, free block
*/
m = (malloc_t *)((char *)n + total_size);
m->size = delta - total_size - sizeof(malloc_t);
104118: 29 f0 sub %esi,%eax
10411a: 8d 1c 16 lea (%esi,%edx,1),%ebx
10411d: 83 e8 0c sub $0xc,%eax
104120: 89 03 mov %eax,(%ebx)
m->next = NULL;
m->magic = MALLOC_MAGIC;
104122: 66 8b 43 08 mov 0x8(%ebx),%ax
104126: 25 00 80 ff ff and $0xffff8000,%eax
10412b: 0d 92 6d 00 00 or $0x6d92,%eax
104130: 66 89 43 08 mov %ax,0x8(%ebx)
104134: c7 43 04 00 00 00 00 movl $0x0,0x4(%ebx)
m->used = 0;
10413b: 80 63 09 7f andb $0x7f,0x9(%ebx)
n->next = m;
10413f: 89 5a 04 mov %ebx,0x4(%edx)
}
return (char *)n + sizeof(malloc_t);
104142: 8d 42 0c lea 0xc(%edx),%eax
}
104145: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
104148: 5b pop %ebx
104149: 5e pop %esi
10414a: 5f pop %edi
10414b: c9 leave
10414c: c3 ret
10414d: c7 42 04 00 00 00 00 movl $0x0,0x4(%edx)
104154: eb ec jmp 104142 <kmalloc+0xc2>
104156: 89 f6 mov %esi,%esi
104158: 8b 0b mov (%ebx),%ecx
10415a: 39 cf cmp %ecx,%edi
10415c: 74 36 je 104194 <kmalloc+0x114>
10415e: 39 ce cmp %ecx,%esi
104160: 0f 87 66 ff ff ff ja 1040cc <kmalloc+0x4c>
104166: 8d 14 1e lea (%esi,%ebx,1),%edx
104169: 89 42 04 mov %eax,0x4(%edx)
10416c: 66 8b 42 08 mov 0x8(%edx),%ax
104170: 25 00 80 ff ff and $0xffff8000,%eax
104175: 0d 92 6d 00 00 or $0x6d92,%eax
10417a: 66 89 42 08 mov %ax,0x8(%edx)
10417e: 29 f1 sub %esi,%ecx
104180: 80 62 09 7f andb $0x7f,0x9(%edx)
104184: 89 0a mov %ecx,(%edx)
104186: 89 53 04 mov %edx,0x4(%ebx)
104189: 89 3b mov %edi,(%ebx)
10418b: 80 4b 09 80 orb $0x80,0x9(%ebx)
10418f: 8d 43 0c lea 0xc(%ebx),%eax
104192: eb b1 jmp 104145 <kmalloc+0xc5>
104194: 83 ca 80 or $0xffffff80,%edx
104197: 88 53 09 mov %dl,0x9(%ebx)
10419a: eb f3 jmp 10418f <kmalloc+0x10f>
10419c: 83 ec 0c sub $0xc,%esp
10419f: 68 a0 5e 10 00 push $0x105ea0
1041a4: e8 0f fc ff ff call 103db8 <panic>
1041a9: 31 c0 xor %eax,%eax
1041ab: eb 98 jmp 104145 <kmalloc+0xc5>
1041ad: 8d 76 00 lea 0x0(%esi),%esi
001041b0 <kfree>:
void kfree(void *blk)
{
1041b0: 55 push %ebp
1041b1: 89 e5 mov %esp,%ebp
1041b3: 56 push %esi
1041b4: 53 push %ebx
1041b5: 8b 5d 08 mov 0x8(%ebp),%ebx
malloc_t *m, *n;
/**
* get address of header
*/
m = (malloc_t *)((char *)blk - sizeof(malloc_t));
1041b8: 8d 4b f4 lea 0xfffffff4(%ebx),%ecx
if(m->magic != MALLOC_MAGIC)
1041bb: 0f b7 41 08 movzwl 0x8(%ecx),%eax
1041bf: 25 ff 7f 00 00 and $0x7fff,%eax
1041c4: 3d 92 6d 00 00 cmp $0x6d92,%eax
1041c9: 74 15 je 1041e0 <kfree+0x30>
{
/*printf("*** attempt to kfree() block at 0x%p with bad magic value\n", blk);*/
panic("attempt to free() block at 0x%p with bad magic value", blk);
1041cb: 83 ec 08 sub $0x8,%esp
1041ce: 53 push %ebx
1041cf: 68 e0 5e 10 00 push $0x105ee0
1041d4: e8 df fb ff ff call 103db8 <panic>
return;
}
/**
* find this block in the heap
*/
n = (malloc_t *)g_heap_bot;
if(n->magic != MALLOC_MAGIC)
{
/*printf("*** kernel heap is corrupt in kfree()\n");*/
panic("kernel heap is corrupt in free()");
return;
}
for(; n != NULL; n = n->next)
{
if(n == m)
break;
}
/**
* not found? bad pointer or no heap or something else?
*/
if(n == NULL)
{
/*printf("*** attempt to kfree() block at 0x%p that is not in the heap\n", blk);*/
panic("attempt to free() block at 0x%p that is not in the heap", blk);
return;
}
/**
* free the block
*/
m->used = 0;
/**
* coalesce adjacent free blocks
* Hard to spell, hard to do
*/
for(m = (malloc_t *)g_heap_bot; m != NULL; m = m->next)
{
while(!m->used && m->next != NULL && !m->next->used)
{
/**
* resize this block
*/
m->size += sizeof(malloc_t) + m->next->size;
/**
* merge with next block
*/
m->next = m->next->next;
}
}
}
1041d9: 8d 65 f8 lea 0xfffffff8(%ebp),%esp
1041dc: 5b pop %ebx
1041dd: 5e pop %esi
1041de: c9 leave
1041df: c3 ret
1041e0: 8b 15 e0 36 18 00 mov 0x1836e0,%edx
1041e6: 0f b7 42 08 movzwl 0x8(%edx),%eax
1041ea: 25 ff 7f 00 00 and $0x7fff,%eax
1041ef: 3d 92 6d 00 00 cmp $0x6d92,%eax
1041f4: 74 12 je 104208 <kfree+0x58>
1041f6: c7 45 08 20 5f 10 00 movl $0x105f20,0x8(%ebp)
1041fd: 8d 65 f8 lea 0xfffffff8(%ebp),%esp
104200: 5b pop %ebx
104201: 5e pop %esi
104202: c9 leave
104203: e9 b0 fb ff ff jmp 103db8 <panic>
104208: 85 d2 test %edx,%edx
10420a: 74 0b je 104217 <kfree+0x67>
10420c: 39 ca cmp %ecx,%edx
10420e: 74 12 je 104222 <kfree+0x72>
104210: 8b 52 04 mov 0x4(%edx),%edx
104213: 85 d2 test %edx,%edx
104215: 75 f5 jne 10420c <kfree+0x5c>
104217: 83 ec 08 sub $0x8,%esp
10421a: 53 push %ebx
10421b: 68 60 5f 10 00 push $0x105f60
104220: eb b2 jmp 1041d4 <kfree+0x24>
104222: 85 d2 test %edx,%edx
104224: 74 f1 je 104217 <kfree+0x67>
104226: 80 61 09 7f andb $0x7f,0x9(%ecx)
10422a: 8b 0d e0 36 18 00 mov 0x1836e0,%ecx
104230: 85 c9 test %ecx,%ecx
104232: 74 a5 je 1041d9 <kfree+0x29>
104234: f6 41 09 80 testb $0x80,0x9(%ecx)
104238: 75 46 jne 104280 <kfree+0xd0>
10423a: 8b 51 04 mov 0x4(%ecx),%edx
10423d: 85 d2 test %edx,%edx
10423f: 89 d3 mov %edx,%ebx
104241: 74 31 je 104274 <kfree+0xc4>
104243: f6 42 09 80 testb $0x80,0x9(%edx)
104247: 75 2b jne 104274 <kfree+0xc4>
104249: 31 f6 xor %esi,%esi
10424b: 90 nop
10424c: 8b 03 mov (%ebx),%eax
10424e: 03 01 add (%ecx),%eax
104250: 83 c0 0c add $0xc,%eax
104253: 89 01 mov %eax,(%ecx)
104255: 85 f6 test %esi,%esi
104257: 8b 43 04 mov 0x4(%ebx),%eax
10425a: 89 41 04 mov %eax,0x4(%ecx)
10425d: 89 c2 mov %eax,%edx
10425f: 75 13 jne 104274 <kfree+0xc4>
104261: 31 d2 xor %edx,%edx
104263: 85 c0 test %eax,%eax
104265: 74 0d je 104274 <kfree+0xc4>
104267: f6 40 09 80 testb $0x80,0x9(%eax)
10426b: 89 c3 mov %eax,%ebx
10426d: 74 dd je 10424c <kfree+0x9c>
10426f: 89 c2 mov %eax,%edx
104271: 8d 76 00 lea 0x0(%esi),%esi
104274: 85 d2 test %edx,%edx
104276: 89 d1 mov %edx,%ecx
104278: 75 ba jne 104234 <kfree+0x84>
10427a: e9 5a ff ff ff jmp 1041d9 <kfree+0x29>
10427f: 90 nop
104280: 8b 51 04 mov 0x4(%ecx),%edx
104283: eb ef jmp 104274 <kfree+0xc4>
104285: 8d 76 00 lea 0x0(%esi),%esi
00104288 <testheap>:
void testheap(void)
{
104288: 55 push %ebp
104289: 89 e5 mov %esp,%ebp
10428b: 83 ec 14 sub $0x14,%esp
//int i;
//char *t;
//kprintf("before char *t = kmalloc((size_t *)25):\n");
//dump_heap();
//t = kmalloc(25);
//strcpy(t, "123456789012345678901234");
//kprintf("after char *t = kmalloc((size_t *)25):\n");
//dump_heap();
//kfree(t);
//kprintf("after kfree(t):\n");
//dump_heap();
//kprintf("before char *t = kmalloc((size_t *)25):\n");
kprintf("Unable to run testheap -- kmalloc() is broken.\n");
10428e: 68 a0 5f 10 00 push $0x105fa0
104293: e8 e8 fa ff ff call 103d80 <kprintf>
}
104298: c9 leave
104299: c3 ret
10429a: 89 f6 mov %esi,%esi
0010429c <krealloc>:
void *krealloc(void *blk, size_t size)
{
10429c: 55 push %ebp
10429d: 89 e5 mov %esp,%ebp
10429f: 57 push %edi
1042a0: 56 push %esi
1042a1: 53 push %ebx
1042a2: 83 ec 0c sub $0xc,%esp
1042a5: 8b 5d 0c mov 0xc(%ebp),%ebx
void *new_blk;
malloc_t *m;
/**
* size == 0: free block
*/
if(size == 0)
1042a8: 85 db test %ebx,%ebx
1042aa: 8b 75 08 mov 0x8(%ebp),%esi
1042ad: 75 1d jne 1042cc <krealloc+0x30>
{
if(blk != NULL)
1042af: 85 f6 test %esi,%esi
1042b1: 74 0c je 1042bf <krealloc+0x23>
kfree(blk);
1042b3: 83 ec 0c sub $0xc,%esp
1042b6: 56 push %esi
1042b7: e8 f4 fe ff ff call 1041b0 <kfree>
1042bc: 83 c4 10 add $0x10,%esp
new_blk = NULL;
1042bf: 31 ff xor %edi,%edi
}
else
{
/**
* allocate new block
*/
new_blk = kmalloc(size);
/**
* if allocation OK, and if old block exists, copy old block to new
*/
if(new_blk != NULL && blk != NULL)
{
m = (malloc_t *)((char *)blk - sizeof(malloc_t));
if(m->magic != MALLOC_MAGIC)
{
/*printf("*** attempt to krealloc() block at 0x%p with bad magic value\n", blk);*/
panic("attempt to realloc() block at 0x%p with bad magic value", blk);
return NULL;
}
/**
* copy minimum of old and new block sizes
*/
if(size > m->size)
size = m->size;
memcpy(new_blk, blk, size);
/**
* free the old block
*/
kfree(blk);
}
}
return new_blk;
1042c1: 89 f8 mov %edi,%eax
}
1042c3: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
1042c6: 5b pop %ebx
1042c7: 5e pop %esi
1042c8: 5f pop %edi
1042c9: c9 leave
1042ca: c3 ret
1042cb: 90 nop
1042cc: 83 ec 0c sub $0xc,%esp
1042cf: 53 push %ebx
1042d0: e8 ab fd ff ff call 104080 <kmalloc>
1042d5: 83 c4 10 add $0x10,%esp
1042d8: 85 c0 test %eax,%eax
1042da: 89 c7 mov %eax,%edi
1042dc: 74 e3 je 1042c1 <krealloc+0x25>
1042de: 85 f6 test %esi,%esi
1042e0: 74 df je 1042c1 <krealloc+0x25>
1042e2: 0f b7 46 fc movzwl 0xfffffffc(%esi),%eax
1042e6: 25 ff 7f 00 00 and $0x7fff,%eax
1042eb: 3d 92 6d 00 00 cmp $0x6d92,%eax
1042f0: 75 1f jne 104311 <krealloc+0x75>
1042f2: 8b 46 f4 mov 0xfffffff4(%esi),%eax
1042f5: 39 c3 cmp %eax,%ebx
1042f7: 76 02 jbe 1042fb <krealloc+0x5f>
1042f9: 89 c3 mov %eax,%ebx
1042fb: 50 push %eax
1042fc: 53 push %ebx
1042fd: 56 push %esi
1042fe: 57 push %edi
1042ff: e8 58 0d 00 00 call 10505c <memcpy>
104304: 89 34 24 mov %esi,(%esp,1)
104307: e8 a4 fe ff ff call 1041b0 <kfree>
10430c: 83 c4 10 add $0x10,%esp
10430f: eb b0 jmp 1042c1 <krealloc+0x25>
104311: 83 ec 08 sub $0x8,%esp
104314: 56 push %esi
104315: 68 e0 5f 10 00 push $0x105fe0
10431a: e8 99 fa ff ff call 103db8 <panic>
10431f: 31 c0 xor %eax,%eax
104321: eb a0 jmp 1042c3 <krealloc+0x27>
104323: 90 nop
00104324 <main>:
void keyboardISR(void);
int main(void)
{
104324: 55 push %ebp
104325: 89 e5 mov %esp,%ebp
104327: 83 ec 08 sub $0x8,%esp
10432a: 83 e4 f0 and $0xfffffff0,%esp
/**
* keyboard interrupt init
*/
vector_t v;
unsigned i;
init_video();
10432d: e8 e6 07 00 00 call 104b18 <init_video>
init_keyboard();
104332: e8 45 d2 ff ff call 10157c <init_keyboard>
init_8259s();
104337: e8 54 fb ff ff call 103e90 <init_8259s>
/**
* XXX:
* i know this is a very ugly way of doing this,
* however it is the only way it can be done for now.
* in the future, i will implement a kprintf function
* whose sole purpose will be writing boot messages.
*
* Also, the color codes need to be mapped to constants
* in order to make using them a hell of a lot easier.
*/
klog("init", "Installing keyboard interrupt handler", K_KLOG_PENDING, &_vc[0]);
10433c: 68 e0 a2 19 00 push $0x19a2e0
104341: 6a 01 push $0x1
104343: 68 20 60 10 00 push $0x106020
104348: 68 bc 5a 10 00 push $0x105abc
10434d: e8 ae bc ff ff call 100000 <LS_Phys>
/* we don't save the old vector */
v.eip = (unsigned)keyboard_irq;
v.access_byte = 0x8E; /* present, ring 0, '386 interrupt gate */
setvect(&v, 0x21);
104352: 58 pop %eax
104353: 5a pop %edx
104354: 8d 45 f8 lea 0xfffffff8(%ebp),%eax
104357: 6a 21 push $0x21
104359: 50 push %eax
10435a: c7 45 fc 1c 13 10 00 movl $0x10131c,0xfffffffc(%ebp)
104361: c7 45 f8 8e 00 00 00 movl $0x8e,0xfffffff8(%ebp)
104368: e8 c4 d3 ff ff call 101731 <_setvect>
klog(NULL, NULL, K_KLOG_SUCCESS, &_vc[0]);
10436d: 68 e0 a2 19 00 push $0x19a2e0
104372: 6a 00 push $0x0
104374: 6a 00 push $0x0
104376: 6a 00 push $0x0
104378: e8 83 bc ff ff call 100000 <LS_Phys>
/*init_tasks();*/
klog("init", "Enabling hardware interrupts", K_KLOG_PENDING, &_vc[0]);
10437d: 83 c4 20 add $0x20,%esp
104380: 68 e0 a2 19 00 push $0x19a2e0
104385: 6a 01 push $0x1
104387: 68 c1 5a 10 00 push $0x105ac1
10438c: 68 bc 5a 10 00 push $0x105abc
104391: e8 6a bc ff ff call 100000 <LS_Phys>
enable();
104396: e8 71 0c 00 00 call 10500c <enable>
/*for(i = 0; i < 0xFFFFFFF; i++);*/
klog(NULL, NULL, K_KLOG_SUCCESS, &_vc[0]);
10439b: 68 e0 a2 19 00 push $0x19a2e0
1043a0: 6a 00 push $0x0
1043a2: 6a 00 push $0x0
1043a4: 6a 00 push $0x0
1043a6: e8 55 bc ff ff call 100000 <LS_Phys>
/**
* Initialize memory management
*/
/*_mm_init();*/
/**
* finished init, time for some gooey ;)
*/
printf(" _ _ _ _ ____ _____ ___ ");
1043ab: 83 c4 14 add $0x14,%esp
1043ae: 68 60 60 10 00 push $0x106060
1043b3: e8 1c 0d 00 00 call 1050d4 <printf>
printf(" ( )_( )( \\/ )( _ \\( _ )/ __) ");
1043b8: c7 04 24 c0 60 10 00 movl $0x1060c0,(%esp,1)
1043bf: e8 10 0d 00 00 call 1050d4 <printf>
printf(" ) _ ( \\ / ) _ < )(_)( \\__ \\ ");
1043c4: c7 04 24 20 61 10 00 movl $0x106120,(%esp,1)
1043cb: e8 04 0d 00 00 call 1050d4 <printf>
printf(" (_) (_) (__) (____/(_____)(___/ \n");
1043d0: c7 04 24 80 61 10 00 movl $0x106180,(%esp,1)
1043d7: e8 f8 0c 00 00 call 1050d4 <printf>
printf(" Hybrid Operating System (HybOS) \n");
1043dc: c7 04 24 e0 61 10 00 movl $0x1061e0,(%esp,1)
1043e3: e8 ec 0c 00 00 call 1050d4 <printf>
/**
* XXX: debug only
*/
printf("ALT + F1 - F8 for virtual terminals\n");
1043e8: c7 04 24 40 62 10 00 movl $0x106240,(%esp,1)
1043ef: e8 e0 0c 00 00 call 1050d4 <printf>
printf("Three finger salute to restart\n");
1043f4: c7 04 24 80 62 10 00 movl $0x106280,(%esp,1)
1043fb: e8 d4 0c 00 00 call 1050d4 <printf>
printf("More work needs to be done\n");
104400: c7 04 24 de 5a 10 00 movl $0x105ade,(%esp,1)
104407: e8 c8 0c 00 00 call 1050d4 <printf>
printf("$ ");
10440c: c7 04 24 d6 54 10 00 movl $0x1054d6,(%esp,1)
104413: e8 bc 0c 00 00 call 1050d4 <printf>
/**
* fork (kfork()) control over to a shell
*/
/*init_shell();*/
/**
* idle task/thread
*/
while(1)
104418: 83 c4 10 add $0x10,%esp
10441b: 90 nop
{
schedule();
10441c: e8 47 01 00 00 call 104568 <schedule>
104421: eb f9 jmp 10441c <main+0xf8>
...
00104424 <_mm_init>:
void _mm_page_copy_dword(uint32_t dest, uint32_t src);
void _mm_virtual_init(void);
void _mm_init(void)
{
104424: 55 push %ebp
104425: 89 e5 mov %esp,%ebp
104427: 83 ec 08 sub $0x8,%esp
klog("init", "Initializing memory management", K_KLOG_PENDING, &_vc[0]);
10442a: 68 e0 a2 19 00 push $0x19a2e0
10442f: 6a 01 push $0x1
104431: 68 a0 62 10 00 push $0x1062a0
104436: 68 bc 5a 10 00 push $0x105abc
10443b: e8 c0 bb ff ff call 100000 <LS_Phys>
_mm_physical_init();
104440: e8 17 00 00 00 call 10445c <_mm_physical_init>
_mm_virtual_init();
104445: e8 ce 00 00 00 call 104518 <_mm_virtual_init>
klog((void *)0, (void *)0, K_KLOG_SUCCESS, &_vc[0]);
10444a: 68 e0 a2 19 00 push $0x19a2e0
10444f: 6a 00 push $0x0
104451: 6a 00 push $0x0
104453: 6a 00 push $0x0
104455: e8 a6 bb ff ff call 100000 <LS_Phys>
}
10445a: c9 leave
10445b: c3 ret
0010445c <_mm_physical_init>:
void _mm_physical_init(void)
{
10445c: 55 push %ebp
10445d: 89 e5 mov %esp,%ebp
unsigned i;
unsigned size = 16 * 1024 * 1024;
size /= PAGESIZE;
size++;
size /= 32;
buffer = (unsigned *)0x40000;
10445f: ba 00 00 04 00 mov $0x40000,%edx
104464: c7 05 84 72 19 00 00 movl $0x40000,0x197284
10446b: 00 04 00
bufferIterator = (unsigned *)0x40000;
10446e: c7 05 80 72 19 00 00 movl $0x40000,0x197280
104475: 00 04 00
for(i = 0; i < 72; i++)
104478: 31 c0 xor %eax,%eax
10447a: 89 f6 mov %esi,%esi
buffer[i] = 0xFFFFFFFF;
10447c: c7 04 82 ff ff ff ff movl $0xffffffff,(%edx,%eax,4)
104483: 40 inc %eax
104484: 83 f8 47 cmp $0x47,%eax
104487: 76 f3 jbe 10447c <_mm_physical_init+0x20>
104489: b8 48 00 00 00 mov $0x48,%eax
10448e: 89 f6 mov %esi,%esi
for(i = 72; i < size; i++)
buffer[i] = 0x00000000;
104490: c7 04 82 00 00 00 00 movl $0x0,(%edx,%eax,4)
104497: 40 inc %eax
104498: 3d 80 00 00 00 cmp $0x80,%eax
10449d: 72 f1 jb 104490 <_mm_physical_init+0x34>
}
10449f: c9 leave
1044a0: c3 ret
1044a1: 8d 76 00 lea 0x0(%esi),%esi
001044a4 <_mm_physical_alloc>:
unsigned _mm_physical_alloc(void)
{
1044a4: 55 push %ebp
1044a5: 89 e5 mov %esp,%ebp
1044a7: 56 push %esi
1044a8: 53 push %ebx
unsigned mask = 0x00000001;
unsigned bit = 0;
/**
* Search for a free space
*/
while(*bufferIterator == 0xFFFFFFFF)
1044a9: 8b 15 80 72 19 00 mov 0x197280,%edx
1044af: 31 f6 xor %esi,%esi
1044b1: 83 3a ff cmpl $0xffffffff,(%edx)
1044b4: b9 01 00 00 00 mov $0x1,%ecx
1044b9: 74 1f je 1044da <_mm_physical_alloc+0x36>
bufferIterator++;
/**
* Search for a bit that indicates a free page
*/
while(*bufferIterator & mask)
1044bb: 8b 02 mov (%edx),%eax
1044bd: a8 01 test $0x1,%al
1044bf: 74 0a je 1044cb <_mm_physical_alloc+0x27>
1044c1: 8d 76 00 lea 0x0(%esi),%esi
{
mask <<= 1;
1044c4: d1 e1 shl %ecx
bit++;
1044c6: 46 inc %esi
1044c7: 85 c1 test %eax,%ecx
1044c9: 75 f9 jne 1044c4 <_mm_physical_alloc+0x20>
}
*bufferIterator |= mask;
1044cb: 09 0a or %ecx,(%edx)
return 32 * (bufferIterator - buffer) + bit;
}
1044cd: 5b pop %ebx
1044ce: 2b 15 84 72 19 00 sub 0x197284,%edx
1044d4: 8d 04 d6 lea (%esi,%edx,8),%eax
1044d7: 5e pop %esi
1044d8: c9 leave
1044d9: c3 ret
1044da: 8d 42 04 lea 0x4(%edx),%eax
1044dd: 8d 76 00 lea 0x0(%esi),%esi
1044e0: 89 c2 mov %eax,%edx
1044e2: 8d 40 04 lea 0x4(%eax),%eax
1044e5: 83 78 fc ff cmpl $0xffffffff,0xfffffffc(%eax)
1044e9: 74 f5 je 1044e0 <_mm_physical_alloc+0x3c>
1044eb: 89 15 80 72 19 00 mov %edx,0x197280
1044f1: eb c8 jmp 1044bb <_mm_physical_alloc+0x17>
1044f3: 90 nop
001044f4 <_mm_physical_free>:
void _mm_physical_free(unsigned page)
{
1044f4: 55 push %ebp
1044f5: 89 e5 mov %esp,%ebp
1044f7: 8b 4d 08 mov 0x8(%ebp),%ecx
1044fa: 53 push %ebx
buffer[page >> 5] &= ~(1 << (page & 0x1F)); /* confused yet?!? */
1044fb: b8 fe ff ff ff mov $0xfffffffe,%eax
104500: 89 cb mov %ecx,%ebx
104502: 83 e1 1f and $0x1f,%ecx
104505: c1 eb 05 shr $0x5,%ebx
104508: 8b 15 84 72 19 00 mov 0x197284,%edx
10450e: d3 c0 rol %cl,%eax
104510: 21 04 9a and %eax,(%edx,%ebx,4)
}
104513: 8b 1c 24 mov (%esp,1),%ebx
104516: c9 leave
104517: c3 ret
00104518 <_mm_virtual_init>:
void _mm_virtual_init(void)
{
104518: 55 push %ebp
104519: 89 e5 mov %esp,%ebp
10451b: c9 leave
10451c: c3 ret
10451d: 8d 76 00 lea 0x0(%esi),%esi
00104520 <_mm_page_copy_byte>:
}
void _mm_page_copy_byte(uint32_t dest, uint32_t src)
{
104520: 55 push %ebp
104521: 89 e5 mov %esp,%ebp
104523: 57 push %edi
104524: 56 push %esi
104525: 8b 7d 08 mov 0x8(%ebp),%edi
104528: 8b 75 0c mov 0xc(%ebp),%esi
__asm__ __volatile__
10452b: b9 00 00 10 00 mov $0x100000,%ecx
104530: fc cld
104531: f3 a4 repz movsb %ds:(%esi),%es:(%edi)
(
"cld;"
"rep; movsb;"
:
: "c" (1024*1024), "D" (dest), "S" (src)
: "memory"
);
}
104533: 5e pop %esi
104534: 5f pop %edi
104535: c9 leave
104536: c3 ret
104537: 90 nop
00104538 <_mm_page_copy_word>:
void _mm_page_copy_word(uint32_t dest, uint32_t src)
{
104538: 55 push %ebp
104539: 89 e5 mov %esp,%ebp
10453b: 57 push %edi
10453c: 56 push %esi
10453d: 8b 7d 08 mov 0x8(%ebp),%edi
104540: 8b 75 0c mov 0xc(%ebp),%esi
__asm__ __volatile__
104543: b9 00 00 08 00 mov $0x80000,%ecx
104548: fc cld
104549: f3 66 a5 repz movsw %ds:(%esi),%es:(%edi)
(
"cld;"
"rep; movsw;"
:
: "c" (512*1024), "D" (dest), "S" (src)
: "memory"
);
}
10454c: 5e pop %esi
10454d: 5f pop %edi
10454e: c9 leave
10454f: c3 ret
00104550 <_mm_page_copy_dword>:
void _mm_page_copy_dword(uint32_t dest, uint32_t src)
{
104550: 55 push %ebp
104551: 89 e5 mov %esp,%ebp
104553: 57 push %edi
104554: 56 push %esi
104555: 8b 7d 08 mov 0x8(%ebp),%edi
104558: 8b 75 0c mov 0xc(%ebp),%esi
__asm__ __volatile__
10455b: b9 00 00 04 00 mov $0x40000,%ecx
104560: fc cld
104561: f3 a5 repz movsl %ds:(%esi),%es:(%edi)
(
"cld;"
"rep; movsl;"
:
: "c" (256*1024), "D" (dest), "S" (src)
: "memory"
);
}
104563: 5e pop %esi
104564: 5f pop %edi
104565: c9 leave
104566: c3 ret
...
00104568 <schedule>:
* schedule()
*
*/
void schedule(void)
{
104568: 55 push %ebp
104569: 89 e5 mov %esp,%ebp
10456b: 83 ec 08 sub $0x8,%esp
static unsigned current;
/**
* If setjmp() returns non-zero it means that we came here through
* hyperspace from our call to longjmp() below, so just return
*/
/** UBU
if(setjmp(_curr_task->state) != 0)
return;
**/
/**
* Try to find the next runnable task
*/
do
10456e: 8b 15 00 37 18 00 mov 0x183700,%edx
{
current++;
104574: 42 inc %edx
if(current >= MAX_TASK)
104575: 83 fa 0f cmp $0xf,%edx
104578: 89 d0 mov %edx,%eax
10457a: 76 04 jbe 104580 <schedule+0x18>
current = 0;
10457c: 31 c0 xor %eax,%eax
10457e: 31 d2 xor %edx,%edx
_curr_task = _tasks + current;
104580: 8d 04 40 lea (%eax,%eax,2),%eax
104583: c1 e0 04 shl $0x4,%eax
104586: 05 20 37 18 00 add $0x183720,%eax
} while(_curr_task->status != TS_RUNNABLE);
10458b: 83 78 2c 01 cmpl $0x1,0x2c(%eax)
10458f: 75 e3 jne 104574 <schedule+0xc>
/**
* Jump to the new task
*/
longjmp(_curr_task->state, 1);
104591: 83 ec 08 sub $0x8,%esp
104594: a3 a0 a2 19 00 mov %eax,0x19a2a0
104599: 6a 01 push $0x1
10459b: 83 c0 04 add $0x4,%eax
10459e: 50 push %eax
10459f: 89 15 00 37 18 00 mov %edx,0x183700
1045a5: e8 76 0a 00 00 call 105020 <longjmp>
1045aa: 89 f6 mov %esi,%esi
001045ac <init_tasks>:
}
/*****************************************************************************
*****************************************************************************/
#define NUM_TASKS 0
/**
* init_tasks()
*
*/
void init_tasks(void)
{
1045ac: 55 push %ebp
1045ad: 89 e5 mov %esp,%ebp
1045af: 83 ec 08 sub $0x8,%esp
static unsigned char stacks[NUM_TASKS][USER_STACK_SIZE];
/*static unsigned entry[NUM_TASKS] =
{
0, (unsigned)task1,
(unsigned)task2, (unsigned)task3,
(unsigned)task4
};*/
static unsigned entry[NUM_TASKS];
unsigned adr, i;
klog("init", "task handler", K_KLOG_PENDING, &_vc[0]);
1045b2: 68 e0 a2 19 00 push $0x19a2e0
1045b7: 6a 01 push $0x1
1045b9: 68 c4 62 10 00 push $0x1062c4
1045be: 68 bc 5a 10 00 push $0x105abc
1045c3: e8 38 ba ff ff call 100000 <LS_Phys>
/**
* For user taskes, initialize the saved state
*/
for(i = 1; i < NUM_TASKS; i++)
1045c8: 83 c4 10 add $0x10,%esp
{
(void)setjmp(_tasks[i].state);
/**
* especially the stack pointer
*/
adr = (unsigned)(stacks[i] + USER_STACK_SIZE);
_tasks[i].state[0].JMPBUF_SP = adr;
/**
* and program counter
*/
_tasks[i].state[0].JMPBUF_IP = entry[i];
/**
* enable interrupts (by setting EFLAGS value)
*/
_tasks[i].state[0].JMPBUF_FLAGS = 0x200;
/**
* allocate a virtual console to this task
*/
_tasks[i].vc = _vc + i;
/**
* and mark it as runnable
*/
_tasks[i].status = TS_RUNNABLE;
}
/**
* mark task 0 runnable (idle task)
*/
_tasks[0].status = TS_RUNNABLE;
1045cb: c7 05 4c 37 18 00 01 movl $0x1,0x18374c
1045d2: 00 00 00
/**
* set _curr_task so schedule() will save state
* of task 0
*/
_curr_task = _tasks + 0;
klog(NULL, NULL, K_KLOG_SUCCESS, &_vc[0]);
1045d5: 68 e0 a2 19 00 push $0x19a2e0
1045da: 6a 00 push $0x0
1045dc: 6a 00 push $0x0
1045de: 6a 00 push $0x0
1045e0: c7 05 a0 a2 19 00 20 movl $0x183720,0x19a2a0
1045e7: 37 18 00
1045ea: e8 11 ba ff ff call 100000 <LS_Phys>
}
1045ef: c9 leave
1045f0: c3 ret
1045f1: 00 00 add %al,(%eax)
...
001045f4 <write>:
* write()
*
*/
static int write(const unsigned char *str, unsigned len)
{
1045f4: 55 push %ebp
1045f5: 89 e5 mov %esp,%ebp
1045f7: 57 push %edi
1045f8: 56 push %esi
1045f9: 53 push %ebx
1045fa: 83 ec 0c sub $0xc,%esp
1045fd: 8b 7d 0c mov 0xc(%ebp),%edi
unsigned i;
for(i = 0; i < len; i++)
104600: 31 f6 xor %esi,%esi
104602: 39 fe cmp %edi,%esi
104604: 8b 5d 08 mov 0x8(%ebp),%ebx
104607: 72 0b jb 104614 <write+0x20>
{
putch_help(_curr_task->vc, *str);
str++;
}
return i;
}
104609: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
10460c: 5b pop %ebx
10460d: 89 f0 mov %esi,%eax
10460f: 5e pop %esi
104610: 5f pop %edi
104611: c9 leave
104612: c3 ret
104613: 90 nop
104614: 83 ec 08 sub $0x8,%esp
104617: 0f b6 03 movzbl (%ebx),%eax
10461a: 50 push %eax
10461b: a1 a0 a2 19 00 mov 0x19a2a0,%eax
104620: ff 30 pushl (%eax)
104622: 46 inc %esi
104623: e8 68 02 00 00 call 104890 <putch_help>
104628: 43 inc %ebx
104629: 83 c4 10 add $0x10,%esp
10462c: 39 fe cmp %edi,%esi
10462e: 72 e4 jb 104614 <write+0x20>
104630: eb d7 jmp 104609 <write+0x15>
104632: 89 f6 mov %esi,%esi
00104634 <yield>:
/**
* yield()
*
*/
static void yield(void)
{
104634: 55 push %ebp
104635: 89 e5 mov %esp,%ebp
schedule();
104637: c9 leave
104638: e9 2b ff ff ff jmp 104568 <schedule>
10463d: 8d 76 00 lea 0x0(%esi),%esi
00104640 <wait>:
}
#define WAIT 0xFFFFFL
/**
* wait()
*/
static void wait(void)
{
104640: 55 push %ebp
104641: 89 e5 mov %esp,%ebp
unsigned long wait;
for(wait = WAIT; wait != 0; wait--)
104643: b8 ff ff 0f 00 mov $0xfffff,%eax
104648: 48 dec %eax
104649: 75 fd jne 104648 <wait+0x8>
/* nothing */;
}
10464b: c9 leave
10464c: c3 ret
10464d: 8d 76 00 lea 0x0(%esi),%esi
00104650 <task1>:
/**
* task1()
*
*/
void task1(void)
{
104650: 55 push %ebp
104651: 89 e5 mov %esp,%ebp
104653: 83 ec 08 sub $0x8,%esp
104656: 89 f6 mov %esi,%esi
//static const unsigned char msg_a[] = "root@hybos $ ";
/**/
//write(msg_a, sizeof(msg_a));
wait();
104658: e8 e3 ff ff ff call 104640 <wait>
while(1)
{
/* so we can process other events */
yield();
10465d: e8 d2 ff ff ff call 104634 <yield>
wait();
104662: eb f4 jmp 104658 <task1+0x8>
00104664 <task2>:
}
}
/**
* task2()
*
*/
void task2(void)
{
104664: 55 push %ebp
104665: 89 e5 mov %esp,%ebp
104667: 83 ec 08 sub $0x8,%esp
10466a: 89 f6 mov %esi,%esi
//static const unsigned char msg_a[] = "root@hybos $ ";
/**/
//write(msg_a, sizeof(msg_a));
wait();
10466c: e8 cf ff ff ff call 104640 <wait>
while(1)
{
yield();
104671: e8 be ff ff ff call 104634 <yield>
wait();
104676: eb f4 jmp 10466c <task2+0x8>
00104678 <task3>:
}
}
/**
* task3()
*
*/
void task3(void)
{
104678: 55 push %ebp
104679: 89 e5 mov %esp,%ebp
10467b: 83 ec 08 sub $0x8,%esp
10467e: 89 f6 mov %esi,%esi
//static const unsigned char msg_a[] = "root@hybos $ ";
/**/
//write(msg_a, sizeof(msg_a));
wait();
104680: e8 bb ff ff ff call 104640 <wait>
while(1)
{
yield();
104685: e8 aa ff ff ff call 104634 <yield>
wait();
10468a: eb f4 jmp 104680 <task3+0x8>
0010468c <task4>:
}
}
/**
* task4()
*
*/
void task4(void)
{
10468c: 55 push %ebp
10468d: 89 e5 mov %esp,%ebp
10468f: 83 ec 08 sub $0x8,%esp
104692: 89 f6 mov %esi,%esi
//static const unsigned char msg_a[] = "root@hybos $ ";
/**/
//write(msg_a, sizeof(msg_a));
wait();
104694: e8 a7 ff ff ff call 104640 <wait>
while(1)
{
yield();
104699: e8 96 ff ff ff call 104634 <yield>
wait();
10469e: eb f4 jmp 104694 <task4+0x8>
001046a0 <blink>:
* blink()
*
*/
void blink(void)
{
1046a0: 55 push %ebp
(*(unsigned char *)_vga_fb_adr)++;
1046a1: a1 28 3a 18 00 mov 0x183a28,%eax
1046a6: 89 e5 mov %esp,%ebp
1046a8: fe 00 incb (%eax)
}
1046aa: c9 leave
1046ab: c3 ret
001046ac <get_current_vc>:
/**
* get_current_vc()
*
*/
unsigned get_current_vc()
{
1046ac: 55 push %ebp
1046ad: 89 e5 mov %esp,%ebp
return curr_vtty;
1046af: a1 c0 a2 19 00 mov 0x19a2c0,%eax
}
1046b4: c9 leave
1046b5: c3 ret
1046b6: 89 f6 mov %esi,%esi
001046b8 <scroll>:
/**
* scroll()
*
*/
static void scroll(console_t *con)
{
1046b8: 55 push %ebp
1046b9: 89 e5 mov %esp,%ebp
1046bb: 57 push %edi
1046bc: 56 push %esi
1046bd: 53 push %ebx
1046be: 83 ec 0c sub $0xc,%esp
unsigned short *fb_adr;
unsigned blank, temp;
blank = 0x20 | ((unsigned)con->attrib << 8);
1046c1: 8b 45 08 mov 0x8(%ebp),%eax
1046c4: 8b 70 18 mov 0x18(%eax),%esi
1046c7: c1 e6 08 shl $0x8,%esi
fb_adr = con->fb_adr;
1046ca: 8b 78 30 mov 0x30(%eax),%edi
/**
* scroll up
*/
if(con->csr_y >= _vc_height)
1046cd: 8b 15 34 3a 18 00 mov 0x183a34,%edx
1046d3: 8b 40 20 mov 0x20(%eax),%eax
1046d6: 83 ce 20 or $0x20,%esi
1046d9: 39 d0 cmp %edx,%eax
1046db: 73 0b jae 1046e8 <scroll+0x30>
{
temp = con->csr_y - _vc_height + 1;
memcpy(fb_adr, fb_adr + temp * _vc_width,
(_vc_height - temp) * _vc_width * 2);
/**
* blank bottom line of screen
*/
memsetw(fb_adr + (_vc_height - temp) * _vc_width,
blank, _vc_width);
con->csr_y = _vc_height - 1;
}
//for(i = 0; i < 0x1000000; i++) ;
}
1046dd: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
1046e0: 5b pop %ebx
1046e1: 5e pop %esi
1046e2: 5f pop %edi
1046e3: c9 leave
1046e4: c3 ret
1046e5: 8d 76 00 lea 0x0(%esi),%esi
1046e8: 29 d0 sub %edx,%eax
1046ea: 8d 58 01 lea 0x1(%eax),%ebx
1046ed: 29 da sub %ebx,%edx
1046ef: 50 push %eax
1046f0: a1 30 3a 18 00 mov 0x183a30,%eax
1046f5: 0f af d0 imul %eax,%edx
1046f8: d1 e2 shl %edx
1046fa: 0f af c3 imul %ebx,%eax
1046fd: 52 push %edx
1046fe: 8d 04 47 lea (%edi,%eax,2),%eax
104701: 50 push %eax
104702: 57 push %edi
104703: e8 54 09 00 00 call 10505c <memcpy>
104708: a1 34 3a 18 00 mov 0x183a34,%eax
10470d: 83 c4 0c add $0xc,%esp
104710: 29 d8 sub %ebx,%eax
104712: ff 35 30 3a 18 00 pushl 0x183a30
104718: 0f af 05 30 3a 18 00 imul 0x183a30,%eax
10471f: 56 push %esi
104720: 8d 04 47 lea (%edi,%eax,2),%eax
104723: 50 push %eax
104724: e8 5f 09 00 00 call 105088 <memsetw>
104729: a1 34 3a 18 00 mov 0x183a34,%eax
10472e: 48 dec %eax
10472f: 8b 55 08 mov 0x8(%ebp),%edx
104732: 89 42 20 mov %eax,0x20(%edx)
104735: 83 c4 10 add $0x10,%esp
104738: eb a3 jmp 1046dd <scroll+0x25>
10473a: 89 f6 mov %esi,%esi
0010473c <set_attrib>:
/**
* set_attrib()
*
*/
static void set_attrib(console_t *con, unsigned att)
{
10473c: 55 push %ebp
10473d: 89 e5 mov %esp,%ebp
10473f: 8b 4d 0c mov 0xc(%ebp),%ecx
104742: 53 push %ebx
static const unsigned ansi_to_vga[] =
{
0, 4, 2, 6, 1, 5, 3, 7
};
unsigned new_att;
new_att = con->attrib;
if(att == 0)
104743: 85 c9 test %ecx,%ecx
104745: 8b 5d 08 mov 0x8(%ebp),%ebx
104748: 8b 53 18 mov 0x18(%ebx),%edx
10474b: 75 0b jne 104758 <set_attrib+0x1c>
new_att &= ~0x08; /* bold off */
10474d: 83 e2 f7 and $0xfffffff7,%edx
else if(att == 1)
new_att |= 0x08; /* bold on */
else if(att >= 30 && att <= 37)
{
att = ansi_to_vga[att - 30];
new_att = (new_att & ~0x07) | att;/* fg color */
}
else if(att >= 40 && att <= 47)
{
att = ansi_to_vga[att - 40] << 4;
new_att = (new_att & ~0x70) | att;/* bg color */
}
con->attrib = new_att;
104750: 89 53 18 mov %edx,0x18(%ebx)
}
104753: 8b 1c 24 mov (%esp,1),%ebx
104756: c9 leave
104757: c3 ret
104758: 83 f9 01 cmp $0x1,%ecx
10475b: 74 33 je 104790 <set_attrib+0x54>
10475d: 8d 41 e2 lea 0xffffffe2(%ecx),%eax
104760: 83 f8 07 cmp $0x7,%eax
104763: 77 0f ja 104774 <set_attrib+0x38>
104765: 83 e2 f8 and $0xfffffff8,%edx
104768: 0b 14 8d 68 62 10 00 or 0x106268(,%ecx,4),%edx
10476f: eb df jmp 104750 <set_attrib+0x14>
104771: 8d 76 00 lea 0x0(%esi),%esi
104774: 8d 41 d8 lea 0xffffffd8(%ecx),%eax
104777: 83 f8 07 cmp $0x7,%eax
10477a: 77 d4 ja 104750 <set_attrib+0x14>
10477c: 8b 04 8d 40 62 10 00 mov 0x106240(,%ecx,4),%eax
104783: c1 e0 04 shl $0x4,%eax
104786: 83 e2 8f and $0xffffff8f,%edx
104789: 09 c2 or %eax,%edx
10478b: eb c3 jmp 104750 <set_attrib+0x14>
10478d: 8d 76 00 lea 0x0(%esi),%esi
104790: 83 ca 08 or $0x8,%edx
104793: eb bb jmp 104750 <set_attrib+0x14>
104795: 8d 76 00 lea 0x0(%esi),%esi
00104798 <move_csr>:
/**
* move_csr()
*
*/
static void move_csr(void)
{
104798: 55 push %ebp
104799: 89 e5 mov %esp,%ebp
10479b: 53 push %ebx
10479c: 83 ec 0c sub $0xc,%esp
unsigned temp;
temp = (_curr_vc->csr_y * _vc_width + _curr_vc->csr_x) +
10479f: a1 24 3a 18 00 mov 0x183a24,%eax
1047a4: 8b 1d 30 3a 18 00 mov 0x183a30,%ebx
1047aa: 0f af 58 20 imul 0x20(%eax),%ebx
1047ae: 03 58 1c add 0x1c(%eax),%ebx
1047b1: 8b 40 30 mov 0x30(%eax),%eax
1047b4: 2b 05 28 3a 18 00 sub 0x183a28,%eax
(_curr_vc->fb_adr - _vga_fb_adr);
outportb(_crtc_io_adr + 0, 14);
1047ba: 6a 0e push $0xe
1047bc: d1 f8 sar %eax
1047be: ff 35 2c 3a 18 00 pushl 0x183a2c
1047c4: 01 c3 add %eax,%ebx
1047c6: e8 e9 08 00 00 call 1050b4 <outportb>
outportb(_crtc_io_adr + 1, temp >> 8);
1047cb: 59 pop %ecx
1047cc: 58 pop %eax
1047cd: 89 d8 mov %ebx,%eax
1047cf: c1 e8 08 shr $0x8,%eax
1047d2: 50 push %eax
1047d3: a1 2c 3a 18 00 mov 0x183a2c,%eax
1047d8: 40 inc %eax
1047d9: 50 push %eax
1047da: e8 d5 08 00 00 call 1050b4 <outportb>
outportb(_crtc_io_adr + 0, 15);
1047df: 58 pop %eax
1047e0: 5a pop %edx
1047e1: 6a 0f push $0xf
1047e3: ff 35 2c 3a 18 00 pushl 0x183a2c
1047e9: e8 c6 08 00 00 call 1050b4 <outportb>
outportb(_crtc_io_adr + 1, temp);
1047ee: 5a pop %edx
1047ef: 59 pop %ecx
1047f0: a1 2c 3a 18 00 mov 0x183a2c,%eax
1047f5: 53 push %ebx
1047f6: 40 inc %eax
1047f7: 50 push %eax
1047f8: e8 b7 08 00 00 call 1050b4 <outportb>
}
1047fd: 8b 5d fc mov 0xfffffffc(%ebp),%ebx
104800: c9 leave
104801: c3 ret
104802: 89 f6 mov %esi,%esi
00104804 <select_vc>:
/**
* select_vc()
*
*/
void select_vc(unsigned which_vc)
{
104804: 55 push %ebp
104805: 89 e5 mov %esp,%ebp
104807: 56 push %esi
104808: 53 push %ebx
104809: 8b 75 08 mov 0x8(%ebp),%esi
unsigned i;
if(which_vc >= _num_vcs)
10480c: 3b 35 20 3a 18 00 cmp 0x183a20,%esi
104812: 72 08 jb 10481c <select_vc+0x18>
return;
_curr_vc = _vc + which_vc;
i = _curr_vc->fb_adr - _vga_fb_adr;
outportb(_crtc_io_adr + 0, 12);
outportb(_crtc_io_adr + 1, i >> 8);
outportb(_crtc_io_adr + 0, 13);
outportb(_crtc_io_adr + 1, i);
curr_vtty = which_vc;
move_csr();
}
104814: 8d 65 f8 lea 0xfffffff8(%ebp),%esp
104817: 5b pop %ebx
104818: 5e pop %esi
104819: c9 leave
10481a: c3 ret
10481b: 90 nop
10481c: 8d 04 76 lea (%esi,%esi,2),%eax
10481f: 8d 04 86 lea (%esi,%eax,4),%eax
104822: 8d 04 85 e0 a2 19 00 lea 0x19a2e0(,%eax,4),%eax
104829: 8b 58 30 mov 0x30(%eax),%ebx
10482c: 83 ec 08 sub $0x8,%esp
10482f: a3 24 3a 18 00 mov %eax,0x183a24
104834: 2b 1d 28 3a 18 00 sub 0x183a28,%ebx
10483a: 6a 0c push $0xc
10483c: d1 fb sar %ebx
10483e: ff 35 2c 3a 18 00 pushl 0x183a2c
104844: e8 6b 08 00 00 call 1050b4 <outportb>
104849: 58 pop %eax
10484a: 89 d8 mov %ebx,%eax
10484c: 5a pop %edx
10484d: c1 e8 08 shr $0x8,%eax
104850: 50 push %eax
104851: a1 2c 3a 18 00 mov 0x183a2c,%eax
104856: 40 inc %eax
104857: 50 push %eax
104858: e8 57 08 00 00 call 1050b4 <outportb>
10485d: 59 pop %ecx
10485e: 58 pop %eax
10485f: 6a 0d push $0xd
104861: ff 35 2c 3a 18 00 pushl 0x183a2c
104867: e8 48 08 00 00 call 1050b4 <outportb>
10486c: 58 pop %eax
10486d: 5a pop %edx
10486e: 53 push %ebx
10486f: a1 2c 3a 18 00 mov 0x183a2c,%eax
104874: 40 inc %eax
104875: 50 push %eax
104876: e8 39 08 00 00 call 1050b4 <outportb>
10487b: 89 35 c0 a2 19 00 mov %esi,0x19a2c0
104881: 83 c4 10 add $0x10,%esp
104884: 8d 65 f8 lea 0xfffffff8(%ebp),%esp
104887: 5b pop %ebx
104888: 5e pop %esi
104889: c9 leave
10488a: e9 09 ff ff ff jmp 104798 <move_csr>
10488f: 90 nop
00104890 <putch_help>:
/**
* putch_help()
*
*/
void putch_help(console_t *con, unsigned c)
{
104890: 55 push %ebp
104891: 89 e5 mov %esp,%ebp
104893: 57 push %edi
104894: 56 push %esi
104895: 53 push %ebx
104896: 83 ec 0c sub $0xc,%esp
104899: 8b 5d 08 mov 0x8(%ebp),%ebx
unsigned short *fb_adr;
unsigned att;
att = (unsigned)con->attrib << 8;
10489c: 8b 73 18 mov 0x18(%ebx),%esi
fb_adr = con->fb_adr;
/**
* state machine to handle escape sequences
*
* ESC
*/
if(con->esc == 1)
10489f: 8b 43 14 mov 0x14(%ebx),%eax
1048a2: c1 e6 08 shl $0x8,%esi
1048a5: 83 f8 01 cmp $0x1,%eax
1048a8: 8b 4d 0c mov 0xc(%ebp),%ecx
1048ab: 8b 7b 30 mov 0x30(%ebx),%edi
1048ae: 0f 84 30 02 00 00 je 104ae4 <putch_help+0x254>
{
if(c == '[')
{
con->esc++;
con->esc1 = 0;
return;
}
/* else fall-through: zero esc and print c */
}
/**
* ESC[
*/
else if(con->esc == 2)
1048b4: 83 f8 02 cmp $0x2,%eax
1048b7: 0f 84 a3 01 00 00 je 104a60 <putch_help+0x1d0>
{
if(isdigit(c))
{
con->esc1 = con->esc1 * 10 + c - '0';
return;
}
else if(c == ';')
{
con->esc++;
con->esc2 = 0;
return;
}
/**
* ESC[2J (clear screen)
*/
else if(c == 'J')
{
if(con->esc1 == 2)
{
memsetw(fb_adr, ' ' | att,
_vc_height * _vc_width);
con->csr_x = con->csr_y = 0;
}
}
/**
* ESC[num1m (set attribute num1)
*/
else if(c == 'm')
set_attrib(con, con->esc1);
con->esc = 0; /* anything else with one numeric arg */
return;
}
/**
* ESC[num1
*/
else if(con->esc == 3)
1048bd: 83 f8 03 cmp $0x3,%eax
1048c0: 0f 84 22 01 00 00 je 1049e8 <putch_help+0x158>
{
if(isdigit(c))
{
con->esc2 = con->esc2 * 10 + c - '0';
return;
}
else if(c == ';')
{
con->esc++; /* ESC[num1;num2; */
con->esc3 = 0;
return;
}
/**
* ESC[num1;num2H (move cursor to num1,num2)
*/
else if(c == 'H')
{
if(con->esc2 < _vc_width)
con->csr_x = con->esc2;
if(con->esc1 < _vc_height)
con->csr_y = con->esc1;
}
/**
* ESC[num1;num2m (set attributes num1,num2)
*/
else if(c == 'm')
{
set_attrib(con, con->esc1);
set_attrib(con, con->esc2);
}
con->esc = 0;
return;
}
/**
* ESC[num1;num2;num3
*/
else if(con->esc == 4)
1048c6: 83 f8 04 cmp $0x4,%eax
1048c9: 0f 84 c9 00 00 00 je 104998 <putch_help+0x108>
{
if(isdigit(c))
{
con->esc3 = con->esc3 * 10 + c - '0';
return;
}
/**
* ESC[num1;num2;num3m (set attributes num1,num2,num3)
*/
else if(c == 'm')
{
set_attrib(con, con->esc1);
set_attrib(con, con->esc2);
set_attrib(con, con->esc3);
}
con->esc = 0;
return;
}
con->esc = 0;
/**
* escape character
*/
if(c == 0x1B)
1048cf: 83 f9 1b cmp $0x1b,%ecx
1048d2: c7 43 14 00 00 00 00 movl $0x0,0x14(%ebx)
1048d9: 0f 84 ad 00 00 00 je 10498c <putch_help+0xfc>
{
con->esc = 1;
return;
}
/**
* backspace
*/
if(c == 0x08)
1048df: 83 f9 08 cmp $0x8,%ecx
1048e2: 0f 84 9a 00 00 00 je 104982 <putch_help+0xf2>
{
if(con->csr_x != 0)
con->csr_x--;
}
/**
* tab
*/
else if(c == 0x09)
1048e8: 83 f9 09 cmp $0x9,%ecx
1048eb: 0f 84 83 00 00 00 je 104974 <putch_help+0xe4>
con->csr_x = (con->csr_x + 8) & ~(8 - 1);
/**
* carriage return
*/
else if(c == '\r') /* 0x0D */
1048f1: 83 f9 0d cmp $0xd,%ecx
1048f4: 74 75 je 10496b <putch_help+0xdb>
con->csr_x = 0;
/**
* line feed
*/
/* else if(c == '\n') *//* 0x0A */
/* con->csr_y++;*/
/**
* CR/LF
*/
else if(c == '\n') /* ### - 0x0A again */
1048f6: 83 f9 0a cmp $0xa,%ecx
1048f9: 74 62 je 10495d <putch_help+0xcd>
{
con->csr_x = 0;
con->csr_y++;
}
/**
* printable ASCII
*/
else if(c >= ' ')
1048fb: 83 f9 1f cmp $0x1f,%ecx
1048fe: 76 58 jbe 104958 <putch_help+0xc8>
{
unsigned short *where;
where = fb_adr + (con->csr_y * _vc_width + con->csr_x);
104900: a1 30 3a 18 00 mov 0x183a30,%eax
104905: 8b 53 1c mov 0x1c(%ebx),%edx
104908: 0f af 43 20 imul 0x20(%ebx),%eax
10490c: 01 d0 add %edx,%eax
*where = (c | att);
10490e: 09 f1 or %esi,%ecx
con->csr_x++;
104910: 42 inc %edx
104911: 66 89 0c 47 mov %cx,(%edi,%eax,2)
104915: 89 d0 mov %edx,%eax
104917: 89 53 1c mov %edx,0x1c(%ebx)
10491a: 89 f6 mov %esi,%esi
}
if(con->csr_x >= _vc_width)
10491c: 3b 05 30 3a 18 00 cmp 0x183a30,%eax
104922: 72 0a jb 10492e <putch_help+0x9e>
{
con->csr_x = 0;
104924: c7 43 1c 00 00 00 00 movl $0x0,0x1c(%ebx)
con->csr_y++;
10492b: ff 43 20 incl 0x20(%ebx)
}
scroll(con);
10492e: 83 ec 0c sub $0xc,%esp
104931: 53 push %ebx
104932: e8 81 fd ff ff call 1046b8 <scroll>
/**
* move cursor only if the VC we're writing is the current VC
*/
if(_curr_vc == con)
104937: 83 c4 10 add $0x10,%esp
10493a: 39 1d 24 3a 18 00 cmp %ebx,0x183a24
104940: 74 0a je 10494c <putch_help+0xbc>
104942: 89 f6 mov %esi,%esi
move_csr();
}
104944: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
104947: 5b pop %ebx
104948: 5e pop %esi
104949: 5f pop %edi
10494a: c9 leave
10494b: c3 ret
10494c: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
10494f: 5b pop %ebx
104950: 5e pop %esi
104951: 5f pop %edi
104952: c9 leave
104953: e9 40 fe ff ff jmp 104798 <move_csr>
104958: 8b 43 1c mov 0x1c(%ebx),%eax
10495b: eb bf jmp 10491c <putch_help+0x8c>
10495d: c7 43 1c 00 00 00 00 movl $0x0,0x1c(%ebx)
104964: ff 43 20 incl 0x20(%ebx)
104967: 31 c0 xor %eax,%eax
104969: eb b1 jmp 10491c <putch_help+0x8c>
10496b: c7 43 1c 00 00 00 00 movl $0x0,0x1c(%ebx)
104972: eb f3 jmp 104967 <putch_help+0xd7>
104974: 8b 43 1c mov 0x1c(%ebx),%eax
104977: 83 c0 08 add $0x8,%eax
10497a: 83 e0 f8 and $0xfffffff8,%eax
10497d: 89 43 1c mov %eax,0x1c(%ebx)
104980: eb 9a jmp 10491c <putch_help+0x8c>
104982: 8b 43 1c mov 0x1c(%ebx),%eax
104985: 85 c0 test %eax,%eax
104987: 74 93 je 10491c <putch_help+0x8c>
104989: 48 dec %eax
10498a: eb f1 jmp 10497d <putch_help+0xed>
10498c: c7 43 14 01 00 00 00 movl $0x1,0x14(%ebx)
104993: eb af jmp 104944 <putch_help+0xb4>
104995: 8d 76 00 lea 0x0(%esi),%esi
104998: f6 81 41 78 10 00 04 testb $0x4,0x107841(%ecx)
10499f: 74 0f je 1049b0 <putch_help+0x120>
1049a1: 8b 43 2c mov 0x2c(%ebx),%eax
1049a4: 8d 04 80 lea (%eax,%eax,4),%eax
1049a7: 8d 44 41 d0 lea 0xffffffd0(%ecx,%eax,2),%eax
1049ab: 89 43 2c mov %eax,0x2c(%ebx)
1049ae: eb 94 jmp 104944 <putch_help+0xb4>
1049b0: 83 f9 6d cmp $0x6d,%ecx
1049b3: 74 0c je 1049c1 <putch_help+0x131>
1049b5: 8d 76 00 lea 0x0(%esi),%esi
1049b8: c7 43 14 00 00 00 00 movl $0x0,0x14(%ebx)
1049bf: eb 83 jmp 104944 <putch_help+0xb4>
1049c1: 83 ec 08 sub $0x8,%esp
1049c4: ff 73 24 pushl 0x24(%ebx)
1049c7: 53 push %ebx
1049c8: e8 6f fd ff ff call 10473c <set_attrib>
1049cd: 5f pop %edi
1049ce: 58 pop %eax
1049cf: ff 73 28 pushl 0x28(%ebx)
1049d2: 53 push %ebx
1049d3: e8 64 fd ff ff call 10473c <set_attrib>
1049d8: 59 pop %ecx
1049d9: 5e pop %esi
1049da: ff 73 2c pushl 0x2c(%ebx)
1049dd: 53 push %ebx
1049de: e8 59 fd ff ff call 10473c <set_attrib>
1049e3: 83 c4 10 add $0x10,%esp
1049e6: eb d0 jmp 1049b8 <putch_help+0x128>
1049e8: f6 81 41 78 10 00 04 testb $0x4,0x107841(%ecx)
1049ef: 74 12 je 104a03 <putch_help+0x173>
1049f1: 8b 43 28 mov 0x28(%ebx),%eax
1049f4: 8d 04 80 lea (%eax,%eax,4),%eax
1049f7: 8d 44 41 d0 lea 0xffffffd0(%ecx,%eax,2),%eax
1049fb: 89 43 28 mov %eax,0x28(%ebx)
1049fe: e9 41 ff ff ff jmp 104944 <putch_help+0xb4>
104a03: 83 f9 3b cmp $0x3b,%ecx
104a06: 74 42 je 104a4a <putch_help+0x1ba>
104a08: 83 f9 48 cmp $0x48,%ecx
104a0b: 74 18 je 104a25 <putch_help+0x195>
104a0d: 83 f9 6d cmp $0x6d,%ecx
104a10: 75 a6 jne 1049b8 <putch_help+0x128>
104a12: 83 ec 08 sub $0x8,%esp
104a15: ff 73 24 pushl 0x24(%ebx)
104a18: 53 push %ebx
104a19: e8 1e fd ff ff call 10473c <set_attrib>
104a1e: 58 pop %eax
104a1f: 5a pop %edx
104a20: ff 73 28 pushl 0x28(%ebx)
104a23: eb b8 jmp 1049dd <putch_help+0x14d>
104a25: 8b 43 28 mov 0x28(%ebx),%eax
104a28: 3b 05 30 3a 18 00 cmp 0x183a30,%eax
104a2e: 73 03 jae 104a33 <putch_help+0x1a3>
104a30: 89 43 1c mov %eax,0x1c(%ebx)
104a33: 8b 43 24 mov 0x24(%ebx),%eax
104a36: 3b 05 34 3a 18 00 cmp 0x183a34,%eax
104a3c: 0f 83 76 ff ff ff jae 1049b8 <putch_help+0x128>
104a42: 89 43 20 mov %eax,0x20(%ebx)
104a45: e9 6e ff ff ff jmp 1049b8 <putch_help+0x128>
104a4a: c7 43 14 04 00 00 00 movl $0x4,0x14(%ebx)
104a51: c7 43 2c 00 00 00 00 movl $0x0,0x2c(%ebx)
104a58: e9 e7 fe ff ff jmp 104944 <putch_help+0xb4>
104a5d: 8d 76 00 lea 0x0(%esi),%esi
104a60: f6 81 41 78 10 00 04 testb $0x4,0x107841(%ecx)
104a67: 74 13 je 104a7c <putch_help+0x1ec>
104a69: 8b 43 24 mov 0x24(%ebx),%eax
104a6c: 8d 04 80 lea (%eax,%eax,4),%eax
104a6f: 8d 44 41 d0 lea 0xffffffd0(%ecx,%eax,2),%eax
104a73: 89 43 24 mov %eax,0x24(%ebx)
104a76: e9 c9 fe ff ff jmp 104944 <putch_help+0xb4>
104a7b: 90 nop
104a7c: 83 f9 3b cmp $0x3b,%ecx
104a7f: 74 4e je 104acf <putch_help+0x23f>
104a81: 83 f9 4a cmp $0x4a,%ecx
104a84: 74 14 je 104a9a <putch_help+0x20a>
104a86: 83 f9 6d cmp $0x6d,%ecx
104a89: 0f 85 29 ff ff ff jne 1049b8 <putch_help+0x128>
104a8f: 83 ec 08 sub $0x8,%esp
104a92: ff 73 24 pushl 0x24(%ebx)
104a95: e9 43 ff ff ff jmp 1049dd <putch_help+0x14d>
104a9a: 83 7b 24 02 cmpl $0x2,0x24(%ebx)
104a9e: 0f 85 14 ff ff ff jne 1049b8 <putch_help+0x128>
104aa4: 51 push %ecx
104aa5: a1 30 3a 18 00 mov 0x183a30,%eax
104aaa: 0f af 05 34 3a 18 00 imul 0x183a34,%eax
104ab1: 50 push %eax
104ab2: 83 ce 20 or $0x20,%esi
104ab5: 56 push %esi
104ab6: 57 push %edi
104ab7: e8 cc 05 00 00 call 105088 <memsetw>
104abc: c7 43 20 00 00 00 00 movl $0x0,0x20(%ebx)
104ac3: c7 43 1c 00 00 00 00 movl $0x0,0x1c(%ebx)
104aca: e9 14 ff ff ff jmp 1049e3 <putch_help+0x153>
104acf: c7 43 14 03 00 00 00 movl $0x3,0x14(%ebx)
104ad6: c7 43 28 00 00 00 00 movl $0x0,0x28(%ebx)
104add: e9 62 fe ff ff jmp 104944 <putch_help+0xb4>
104ae2: 89 f6 mov %esi,%esi
104ae4: 83 f9 5b cmp $0x5b,%ecx
104ae7: 0f 85 e2 fd ff ff jne 1048cf <putch_help+0x3f>
104aed: c7 43 14 02 00 00 00 movl $0x2,0x14(%ebx)
104af4: c7 43 24 00 00 00 00 movl $0x0,0x24(%ebx)
104afb: e9 44 fe ff ff jmp 104944 <putch_help+0xb4>
00104b00 <putch>:
/**
* putch()
*
*/
void putch(unsigned c)
{
104b00: 55 push %ebp
104b01: 89 e5 mov %esp,%ebp
104b03: 83 ec 10 sub $0x10,%esp
/* all kernel messages to VC #0 */
// putch_help(_vc + 0, c);
/* all kernel messages to current VC */
putch_help(_curr_vc, c);
104b06: ff 75 08 pushl 0x8(%ebp)
104b09: ff 35 24 3a 18 00 pushl 0x183a24
104b0f: e8 7c fd ff ff call 104890 <putch_help>
}
104b14: c9 leave
104b15: c3 ret
104b16: 89 f6 mov %esi,%esi
00104b18 <init_video>:
/**
* init_video()
*
*/
void init_video(void)
{
104b18: 55 push %ebp
104b19: 89 e5 mov %esp,%ebp
104b1b: 56 push %esi
104b1c: 53 push %ebx
unsigned i;
/**
* check for monochrome or color VGA emulation
*/
if((inportb(VGA_MISC_READ) & 0x01) != 0)
104b1d: 83 ec 0c sub $0xc,%esp
104b20: 68 cc 03 00 00 push $0x3cc
104b25: e8 ea 04 00 00 call 105014 <inportb>
104b2a: 83 c4 10 add $0x10,%esp
104b2d: a8 01 test $0x1,%al
104b2f: 0f 84 78 01 00 00 je 104cad <init_video+0x195>
{
_vga_fb_adr = (unsigned short *)0xB8000L;
104b35: c7 05 28 3a 18 00 00 movl $0xb8000,0x183a28
104b3c: 80 0b 00
_crtc_io_adr = 0x3D4;
104b3f: c7 05 2c 3a 18 00 d4 movl $0x3d4,0x183a2c
104b46: 03 00 00
}
else
{
_vga_fb_adr = (unsigned short *)0xB0000L;
_crtc_io_adr = 0x3B4;
}
/**
* read current screen size from BIOS data segment (addresses 400-4FF)
*/
_vc_width = *(unsigned short *)0x44A;
_vc_height = *(unsigned char *)0x484 + 1;
104b49: 0f b6 05 84 04 00 00 movzbl 0x484,%eax
104b50: 40 inc %eax
104b51: 0f b7 15 4a 04 00 00 movzwl 0x44a,%edx
104b58: 89 15 30 3a 18 00 mov %edx,0x183a30
/**
* figure out how many VCs we can have with 32K of display memory.
* Use INTEGER division to round down.
*/
_num_vcs = 32768L / (_vc_width * _vc_height * 2);
104b5e: 0f af d0 imul %eax,%edx
104b61: d1 e2 shl %edx
104b63: 89 d1 mov %edx,%ecx
104b65: a3 34 3a 18 00 mov %eax,0x183a34
104b6a: 31 d2 xor %edx,%edx
104b6c: b8 00 80 00 00 mov $0x8000,%eax
104b71: f7 f1 div %ecx
if(_num_vcs > MAX_VC)
104b73: 83 f8 0c cmp $0xc,%eax
104b76: a3 20 3a 18 00 mov %eax,0x183a20
104b7b: 76 0a jbe 104b87 <init_video+0x6f>
_num_vcs = MAX_VC;
104b7d: c7 05 20 3a 18 00 0c movl $0xc,0x183a20
104b84: 00 00 00
/**
* init VCs, with a different foreground color for each
*/
for(i = 0; i < _num_vcs; i++)
104b87: 31 f6 xor %esi,%esi
104b89: 3b 35 20 3a 18 00 cmp 0x183a20,%esi
104b8f: 73 53 jae 104be4 <init_video+0xcc>
104b91: bb e0 a2 19 00 mov $0x19a2e0,%ebx
104b96: 89 f6 mov %esi,%esi
{
_curr_vc = _vc + i;
//_curr_vc->attrib = i + 1;
/* terminal foreground color */
_curr_vc->attrib = 7;
_curr_vc->fb_adr = _vga_fb_adr +
104b98: a1 34 3a 18 00 mov 0x183a34,%eax
104b9d: 0f af 05 30 3a 18 00 imul 0x183a30,%eax
104ba4: 8b 15 28 3a 18 00 mov 0x183a28,%edx
104baa: 0f af c6 imul %esi,%eax
_vc_width * _vc_height * i;
/**
* ESC[2J clears the screen
*/
//kprintf("\x1B[2J this is VC#%u (of 0-%u)\n",
// i, _num_vcs - 1);
printf("\x1B[2J");
104bad: 83 ec 0c sub $0xc,%esp
104bb0: 8d 04 42 lea (%edx,%eax,2),%eax
104bb3: c7 43 18 07 00 00 00 movl $0x7,0x18(%ebx)
104bba: 89 43 30 mov %eax,0x30(%ebx)
104bbd: 68 00 63 10 00 push $0x106300
104bc2: 89 1d 24 3a 18 00 mov %ebx,0x183a24
104bc8: e8 07 05 00 00 call 1050d4 <printf>
if(i != 0)
104bcd: 83 c4 10 add $0x10,%esp
104bd0: 85 f6 test %esi,%esi
104bd2: 0f 85 c0 00 00 00 jne 104c98 <init_video+0x180>
104bd8: 46 inc %esi
104bd9: 83 c3 34 add $0x34,%ebx
104bdc: 3b 35 20 3a 18 00 cmp 0x183a20,%esi
104be2: 72 b4 jb 104b98 <init_video+0x80>
printf("$ ");
}
select_vc(0);
104be4: 83 ec 0c sub $0xc,%esp
104be7: 6a 00 push $0x0
104be9: e8 16 fc ff ff call 104804 <select_vc>
curr_vtty = 0;
_curr_vc->attrib = 8;
104bee: a1 24 3a 18 00 mov 0x183a24,%eax
104bf3: c7 05 c0 a2 19 00 00 movl $0x0,0x19a2c0
104bfa: 00 00 00
104bfd: c7 40 18 08 00 00 00 movl $0x8,0x18(%eax)
printf("[ ");
104c04: c7 04 24 b6 51 10 00 movl $0x1051b6,(%esp,1)
104c0b: e8 c4 04 00 00 call 1050d4 <printf>
_curr_vc->attrib = 15;
104c10: a1 24 3a 18 00 mov 0x183a24,%eax
104c15: c7 40 18 0f 00 00 00 movl $0xf,0x18(%eax)
printf("init: video %5s emulation, %2ux%2u, framebuffer at 0x%1X ",
104c1c: 5b pop %ebx
104c1d: ff 35 28 3a 18 00 pushl 0x183a28
104c23: ff 35 34 3a 18 00 pushl 0x183a34
104c29: 81 3d 2c 3a 18 00 d4 cmpl $0x3d4,0x183a2c
104c30: 03 00 00
104c33: ff 35 30 3a 18 00 pushl 0x183a30
104c39: 74 54 je 104c8f <init_video+0x177>
104c3b: b8 05 63 10 00 mov $0x106305,%eax
104c40: 50 push %eax
104c41: 68 40 63 10 00 push $0x106340
104c46: e8 89 04 00 00 call 1050d4 <printf>
(_crtc_io_adr == 0x3D4) ? "color" : "mono",
_vc_width, _vc_height, _vga_fb_adr);
_curr_vc->attrib = 8;
printf("]................");
104c4b: 83 c4 14 add $0x14,%esp
104c4e: a1 24 3a 18 00 mov 0x183a24,%eax
104c53: c7 40 18 08 00 00 00 movl $0x8,0x18(%eax)
104c5a: 68 0a 63 10 00 push $0x10630a
104c5f: e8 70 04 00 00 call 1050d4 <printf>
_curr_vc->attrib = 2;
104c64: a1 24 3a 18 00 mov 0x183a24,%eax
104c69: c7 40 18 02 00 00 00 movl $0x2,0x18(%eax)
printf("Ok");
104c70: c7 04 24 d9 54 10 00 movl $0x1054d9,(%esp,1)
104c77: e8 58 04 00 00 call 1050d4 <printf>
_curr_vc->attrib = 7;
104c7c: a1 24 3a 18 00 mov 0x183a24,%eax
104c81: c7 40 18 07 00 00 00 movl $0x7,0x18(%eax)
}
104c88: 8d 65 f8 lea 0xfffffff8(%ebp),%esp
104c8b: 5b pop %ebx
104c8c: 5e pop %esi
104c8d: c9 leave
104c8e: c3 ret
104c8f: b8 1c 63 10 00 mov $0x10631c,%eax
104c94: eb aa jmp 104c40 <init_video+0x128>
104c96: 89 f6 mov %esi,%esi
104c98: 83 ec 0c sub $0xc,%esp
104c9b: 68 d6 54 10 00 push $0x1054d6
104ca0: e8 2f 04 00 00 call 1050d4 <printf>
104ca5: 83 c4 10 add $0x10,%esp
104ca8: e9 2b ff ff ff jmp 104bd8 <init_video+0xc0>
104cad: c7 05 28 3a 18 00 00 movl $0xb0000,0x183a28
104cb4: 00 0b 00
104cb7: c7 05 2c 3a 18 00 b4 movl $0x3b4,0x183a2c
104cbe: 03 00 00
104cc1: e9 83 fe ff ff jmp 104b49 <init_video+0x31>
...
00104cc8 <disable>:
/*****************************************************************************
*****************************************************************************/
unsigned disable(void)
{
104cc8: 55 push %ebp
104cc9: 89 e5 mov %esp,%ebp
unsigned ret_val;
__asm__ __volatile__("pushfl\n"
104ccb: 9c pushf
104ccc: 58 pop %eax
104ccd: fa cli
"popl %0\n"
"cli"
: "=a"(ret_val)
:);
return ret_val;
}
104cce: c9 leave
104ccf: c3 ret
00104cd0 <do_printf>:
2^32-1 in base 8 has 11 digits (add 5 for trailing NUL and for slop) */
#define PR_BUFLEN 16
int do_printf(const char *fmt, va_list args, fnptr_t fn, void *ptr)
{
104cd0: 55 push %ebp
104cd1: 89 e5 mov %esp,%ebp
104cd3: 57 push %edi
104cd4: 56 push %esi
104cd5: 53 push %ebx
104cd6: 83 ec 2c sub $0x2c,%esp
104cd9: 8b 75 08 mov 0x8(%ebp),%esi
unsigned state, flags, radix, actual_wd, count, given_wd;
unsigned char *where, buf[PR_BUFLEN];
long num;
state = flags = count = given_wd = 0;
104cdc: c7 45 cc 00 00 00 00 movl $0x0,0xffffffcc(%ebp)
104ce3: c7 45 d0 00 00 00 00 movl $0x0,0xffffffd0(%ebp)
104cea: c7 45 d4 00 00 00 00 movl $0x0,0xffffffd4(%ebp)
/* begin scanning format specifier list */
for(; *fmt; fmt++)
104cf1: 8a 0e mov (%esi),%cl
104cf3: 31 db xor %ebx,%ebx
104cf5: 84 c9 test %cl,%cl
104cf7: 74 38 je 104d31 <do_printf+0x61>
104cf9: 8d 76 00 lea 0x0(%esi),%esi
{
switch(state)
104cfc: 83 fb 04 cmp $0x4,%ebx
104cff: 0f 87 d7 01 00 00 ja 104edc <do_printf+0x20c>
104d05: ff 24 9d 7c 63 10 00 jmp *0x10637c(,%ebx,4)
{
/* STATE 0: AWAITING % */
case 0:
if(*fmt != '%') /* not %... */
104d0c: 80 f9 25 cmp $0x25,%cl
104d0f: 74 2b je 104d3c <do_printf+0x6c>
{
fn(*fmt, &ptr); /* ...just echo it */
104d11: 83 ec 08 sub $0x8,%esp
104d14: 8d 45 14 lea 0x14(%ebp),%eax
104d17: 50 push %eax
104d18: 0f be c1 movsbl %cl,%eax
104d1b: 50 push %eax
104d1c: ff 55 10 call *0x10(%ebp)
count++;
104d1f: ff 45 d0 incl 0xffffffd0(%ebp)
break;
}
/* found %, get next char and advance state to check if next char is a flag */
state++;
fmt++;
/* FALL THROUGH */
/* STATE 1: AWAITING FLAGS (%-0) */
case 1:
if(*fmt == '%') /* %% */
{
fn(*fmt, &ptr);
count++;
state = flags = given_wd = 0;
break;
104d22: 83 c4 10 add $0x10,%esp
104d25: 8d 76 00 lea 0x0(%esi),%esi
104d28: 46 inc %esi
104d29: 8a 06 mov (%esi),%al
104d2b: 84 c0 test %al,%al
104d2d: 88 c1 mov %al,%cl
104d2f: 75 cb jne 104cfc <do_printf+0x2c>
}
if(*fmt == '-')
{
if(flags & PR_LJ)/* %-- is illegal */
state = flags = given_wd = 0;
else
flags |= PR_LJ;
break;
}
/* not a flag char: advance state to check if it's field width */
state++;
/* check now for '%0...' */
if(*fmt == '0')
{
flags |= PR_LZ;
fmt++;
}
/* FALL THROUGH */
/* STATE 2: AWAITING (NUMERIC) FIELD WIDTH */
case 2:
if(*fmt >= '0' && *fmt <= '9')
{
given_wd = 10 * given_wd +
(*fmt - '0');
break;
}
/* not field width: advance state to check if it's a modifier */
state++;
/* FALL THROUGH */
/* STATE 3: AWAITING MODIFIER CHARS (FNlh) */
case 3:
if(*fmt == 'F')
{
flags |= PR_FP;
break;
}
if(*fmt == 'N')
break;
if(*fmt == 'l')
{
flags |= PR_32;
break;
}
if(*fmt == 'h')
{
flags |= PR_16;
break;
}
/* not modifier: advance state to check if it's a conversion char */
state++;
/* FALL THROUGH */
/* STATE 4: AWAITING CONVERSION CHARS (Xxpndiuocs) */
case 4:
where = buf + PR_BUFLEN - 1;
*where = '\0';
switch(*fmt)
{
case 'X':
flags |= PR_CA;
/* FALL THROUGH */
/* xxx - far pointers (%Fp, %Fn) not yet supported */
case 'x':
case 'p':
case 'n':
radix = 16;
goto DO_NUM;
case 'd':
case 'i':
flags |= PR_SG;
/* FALL THROUGH */
case 'u':
radix = 10;
goto DO_NUM;
case 'o':
radix = 8;
/* load the value to be printed. l=long=32 bits: */
DO_NUM: if(flags & PR_32)
num = va_arg(args, unsigned long);
/* h=short=16 bits (signed or unsigned) */
else if(flags & PR_16)
{
if(flags & PR_SG)
num = va_arg(args, short);
else
num = va_arg(args, unsigned short);
}
/* no h nor l: sizeof(int) bits (signed or unsigned) */
else
{
if(flags & PR_SG)
num = va_arg(args, int);
else
num = va_arg(args, unsigned int);
}
/* take care of sign */
if(flags & PR_SG)
{
if(num < 0)
{
flags |= PR_WS;
num = -num;
}
}
/* convert binary to octal/decimal/hex ASCII
OK, I found my mistake. The math here is _always_ unsigned */
do
{
unsigned long temp;
temp = (unsigned long)num % radix;
where--;
if(temp < 10)
*where = temp + '0';
else if(flags & PR_CA)
*where = temp - 10 + 'A';
else
*where = temp - 10 + 'a';
num = (unsigned long)num / radix;
}
while(num != 0);
goto EMIT;
case 'c':
/* disallow pad-left-with-zeroes for %c */
flags &= ~PR_LZ;
where--;
*where = (unsigned char)va_arg(args,
unsigned char);
actual_wd = 1;
goto EMIT2;
case 's':
/* disallow pad-left-with-zeroes for %s */
flags &= ~PR_LZ;
where = va_arg(args, unsigned char *);
EMIT:
actual_wd = strlen(where);
if(flags & PR_WS)
actual_wd++;
/* if we pad left with ZEROES, do the sign now */
if((flags & (PR_WS | PR_LZ)) ==
(PR_WS | PR_LZ))
{
fn('-', &ptr);
count++;
}
/* pad on left with spaces or zeroes (for right justify) */
EMIT2: if((flags & PR_LJ) == 0)
{
while(given_wd > actual_wd)
{
fn(flags & PR_LZ ? '0' :
' ', &ptr);
count++;
given_wd--;
}
}
/* if we pad left with SPACES, do the sign now */
if((flags & (PR_WS | PR_LZ)) == PR_WS)
{
fn('-', &ptr);
count++;
}
/* emit string/char/converted number */
while(*where != '\0')
{
fn(*where++, &ptr);
count++;
}
/* pad on right with spaces (for left justify) */
if(given_wd < actual_wd)
given_wd = 0;
else given_wd -= actual_wd;
for(; given_wd; given_wd--)
{
fn(' ', &ptr);
count++;
}
break;
default:
break;
}
default:
state = flags = given_wd = 0;
break;
}
}
return count;
}
104d31: 8b 45 d0 mov 0xffffffd0(%ebp),%eax
104d34: 8d 65 f4 lea 0xfffffff4(%ebp),%esp
104d37: 5b pop %ebx
104d38: 5e pop %esi
104d39: 5f pop %edi
104d3a: c9 leave
104d3b: c3 ret
104d3c: 46 inc %esi
104d3d: 43 inc %ebx
104d3e: 8a 0e mov (%esi),%cl
104d40: 80 f9 25 cmp $0x25,%cl
104d43: 0f 84 9d 02 00 00 je 104fe6 <do_printf+0x316>
104d49: 80 f9 2d cmp $0x2d,%cl
104d4c: 0f 84 81 02 00 00 je 104fd3 <do_printf+0x303>
104d52: 43 inc %ebx
104d53: 80 f9 30 cmp $0x30,%cl
104d56: 0f 84 6b 02 00 00 je 104fc7 <do_printf+0x2f7>
104d5c: 8d 41 d0 lea 0xffffffd0(%ecx),%eax
104d5f: 3c 09 cmp $0x9,%al
104d61: 77 12 ja 104d75 <do_printf+0xa5>
104d63: 8b 45 cc mov 0xffffffcc(%ebp),%eax
104d66: 8d 14 80 lea (%eax,%eax,4),%edx
104d69: 0f be c1 movsbl %cl,%eax
104d6c: 8d 54 50 d0 lea 0xffffffd0(%eax,%edx,2),%edx
104d70: 89 55 cc mov %edx,0xffffffcc(%ebp)
104d73: eb b3 jmp 104d28 <do_printf+0x58>
104d75: 43 inc %ebx
104d76: 80 f9 46 cmp $0x46,%cl
104d79: 0f 84 3c 02 00 00 je 104fbb <do_printf+0x2eb>
104d7f: 80 f9 4e cmp $0x4e,%cl
104d82: 74 a4 je 104d28 <do_printf+0x58>
104d84: 80 f9 6c cmp $0x6c,%cl
104d87: 0f 84 25 02 00 00 je 104fb2 <do_printf+0x2e2>
104d8d: 80 f9 68 cmp $0x68,%cl
104d90: 0f 84 13 02 00 00 je 104fa9 <do_printf+0x2d9>
104d96: 89 f6 mov %esi,%esi
104d98: 0f be c1 movsbl %cl,%eax
104d9b: 83 e8 58 sub $0x58,%eax
104d9e: 83 f8 20 cmp $0x20,%eax
104da1: 8d 7d e7 lea 0xffffffe7(%ebp),%edi
104da4: c6 45 e7 00 movb $0x0,0xffffffe7(%ebp)
104da8: 0f 87 2e 01 00 00 ja 104edc <do_printf+0x20c>
104dae: ff 24 85 90 63 10 00 jmp *0x106390(,%eax,4)
104db5: 83 4d d4 02 orl $0x2,0xffffffd4(%ebp)
104db9: bb 10 00 00 00 mov $0x10,%ebx
104dbe: f6 45 d4 08 testb $0x8,0xffffffd4(%ebp)
104dc2: 0f 85 8c 01 00 00 jne 104f54 <do_printf+0x284>
104dc8: f6 45 d4 10 testb $0x10,0xffffffd4(%ebp)
104dcc: 0f 84 6d 01 00 00 je 104f3f <do_printf+0x26f>
104dd2: f6 45 d4 04 testb $0x4,0xffffffd4(%ebp)
104dd6: 0f 84 53 01 00 00 je 104f2f <do_printf+0x25f>
104ddc: 83 45 0c 04 addl $0x4,0xc(%ebp)
104de0: 8b 45 0c mov 0xc(%ebp),%eax
104de3: 0f bf 48 fc movswl 0xfffffffc(%eax),%ecx
104de7: f6 45 d4 04 testb $0x4,0xffffffd4(%ebp)
104deb: 74 08 je 104df5 <do_printf+0x125>
104ded: 85 c9 test %ecx,%ecx
104def: 0f 88 2f 01 00 00 js 104f24 <do_printf+0x254>
104df5: 8b 45 d4 mov 0xffffffd4(%ebp),%eax
104df8: 83 e0 02 and $0x2,%eax
104dfb: 89 45 c8 mov %eax,0xffffffc8(%ebp)
104dfe: 89 f6 mov %esi,%esi
104e00: 31 d2 xor %edx,%edx
104e02: 89 c8 mov %ecx,%eax
104e04: f7 f3 div %ebx
104e06: 4f dec %edi
104e07: 83 fa 09 cmp $0x9,%edx
104e0a: 8d 42 30 lea 0x30(%edx),%eax
104e0d: 76 11 jbe 104e20 <do_printf+0x150>
104e0f: 8b 45 c8 mov 0xffffffc8(%ebp),%eax
104e12: 85 c0 test %eax,%eax
104e14: 0f 84 02 01 00 00 je 104f1c <do_printf+0x24c>
104e1a: 8d 42 37 lea 0x37(%edx),%eax
104e1d: 8d 76 00 lea 0x0(%esi),%esi
104e20: 31 d2 xor %edx,%edx
104e22: 88 07 mov %al,(%edi)
104e24: 89 c8 mov %ecx,%eax
104e26: f7 f3 div %ebx
104e28: 85 c0 test %eax,%eax
104e2a: 89 c1 mov %eax,%ecx
104e2c: 75 d2 jne 104e00 <do_printf+0x130>
104e2e: 83 ec 0c sub $0xc,%esp
104e31: 57 push %edi
104e32: e8 21 03 00 00 call 105158 <strlen>
104e37: 83 c4 10 add $0x10,%esp
104e3a: f6 45 d4 20 testb $0x20,0xffffffd4(%ebp)
104e3e: 89 c3 mov %eax,%ebx
104e40: 74 01 je 104e43 <do_printf+0x173>
104e42: 43 inc %ebx
104e43: 8b 45 d4 mov 0xffffffd4(%ebp),%eax
104e46: 83 e0 60 and $0x60,%eax
104e49: 83 f8 60 cmp $0x60,%eax
104e4c: 0f 84 b3 00 00 00 je 104f05 <do_printf+0x235>
104e52: f6 45 d4 01 testb $0x1,0xffffffd4(%ebp)
104e56: 75 31 jne 104e89 <do_printf+0x1b9>
104e58: 39 5d cc cmp %ebx,0xffffffcc(%ebp)
104e5b: 76 2c jbe 104e89 <do_printf+0x1b9>
104e5d: 8d 76 00 lea 0x0(%esi),%esi
104e60: 83 ec 08 sub $0x8,%esp
104e63: 8d 45 14 lea 0x14(%ebp),%eax
104e66: f6 45 d4 40 testb $0x40,0xffffffd4(%ebp)
104e6a: 50 push %eax
104e6b: b8 30 00 00 00 mov $0x30,%eax
104e70: 75 05 jne 104e77 <do_printf+0x1a7>
104e72: b8 20 00 00 00 mov $0x20,%eax
104e77: 50 push %eax
104e78: ff 55 10 call *0x10(%ebp)
104e7b: ff 4d cc decl 0xffffffcc(%ebp)
104e7e: ff 45 d0 incl 0xffffffd0(%ebp)
104e81: 83 c4 10 add $0x10,%esp
104e84: 39 5d cc cmp %ebx,0xffffffcc(%ebp)
104e87: 77 d7 ja 104e60 <do_printf+0x190>
104e89: 83 65 d4 60 andl $0x60,0xffffffd4(%ebp)
104e8d: 83 7d d4 20 cmpl $0x20,0xffffffd4(%ebp)
104e91: 74 5e je 104ef1 <do_printf+0x221>
104e93: 8a 07 mov (%edi),%al
104e95: 84 c0 test %al,%al
104e97: 74 1e je 104eb7 <do_printf+0x1e7>
104e99: 8d 76 00 lea 0x0(%esi),%esi
104e9c: 83 ec 08 sub $0x8,%esp
104e9f: 8d 55 14 lea 0x14(%ebp),%edx
104ea2: 52 push %edx
104ea3: 0f b6 c0 movzbl %al,%eax
104ea6: 50 push %eax
104ea7: ff 55 10 call *0x10(%ebp)
104eaa: 47 inc %edi
104eab: ff 45 d0 incl 0xffffffd0(%ebp)
104eae: 8a 07 mov (%edi),%al
104eb0: 83 c4 10 add $0x10,%esp
104eb3: 84 c0 test %al,%al
104eb5: 75 e5 jne 104e9c <do_printf+0x1cc>
104eb7: 39 5d cc cmp %ebx,0xffffffcc(%ebp)
104eba: 72 20 jb 104edc <do_printf+0x20c>
104ebc: 29 5d cc sub %ebx,0xffffffcc(%ebp)
104ebf: 74 1b je 104edc <do_printf+0x20c>
104ec1: 8d 76 00 lea 0x0(%esi),%esi
104ec4: 83 ec 08 sub $0x8,%esp
104ec7: 8d 45 14 lea 0x14(%ebp),%eax
104eca: 50 push %eax
104ecb: 6a 20 push $0x20
104ecd: ff 55 10 call *0x10(%ebp)
104ed0: ff 45 d0 incl 0xffffffd0(%ebp)
104ed3: 83 c4 10 add $0x10,%esp
104ed6: ff 4d cc decl 0xffffffcc(%ebp)
104ed9: 75 e9 jne 104ec4 <do_printf+0x1f4>
104edb: 90 nop
104edc: c7 45 cc 00 00 00 00 movl $0x0,0xffffffcc(%ebp)
104ee3: c7 45 d4 00 00 00 00 movl $0x0,0xffffffd4(%ebp)
104eea: 31 db xor %ebx,%ebx
104eec: e9 37 fe ff ff jmp 104d28 <do_printf+0x58>
104ef1: 83 ec 08 sub $0x8,%esp
104ef4: 8d 55 14 lea 0x14(%ebp),%edx
104ef7: 52 push %edx
104ef8: 6a 2d push $0x2d
104efa: ff 55 10 call *0x10(%ebp)
104efd: ff 45 d0 incl 0xffffffd0(%ebp)
104f00: 83 c4 10 add $0x10,%esp
104f03: eb 8e jmp 104e93 <do_printf+0x1c3>
104f05: 83 ec 08 sub $0x8,%esp
104f08: 8d 55 14 lea 0x14(%ebp),%edx
104f0b: 52 push %edx
104f0c: 6a 2d push $0x2d
104f0e: ff 55 10 call *0x10(%ebp)
104f11: ff 45 d0 incl 0xffffffd0(%ebp)
104f14: 83 c4 10 add $0x10,%esp
104f17: e9 36 ff ff ff jmp 104e52 <do_printf+0x182>
104f1c: 8d 42 57 lea 0x57(%edx),%eax
104f1f: e9 fc fe ff ff jmp 104e20 <do_printf+0x150>
104f24: 83 4d d4 20 orl $0x20,0xffffffd4(%ebp)
104f28: f7 d9 neg %ecx
104f2a: e9 c6 fe ff ff jmp 104df5 <do_printf+0x125>
104f2f: 83 45 0c 04 addl $0x4,0xc(%ebp)
104f33: 8b 55 0c mov 0xc(%ebp),%edx
104f36: 0f b7 4a fc movzwl 0xfffffffc(%edx),%ecx
104f3a: e9 a8 fe ff ff jmp 104de7 <do_printf+0x117>
104f3f: f6 45 d4 04 testb $0x4,0xffffffd4(%ebp)
104f43: 74 0f je 104f54 <do_printf+0x284>
104f45: 83 45 0c 04 addl $0x4,0xc(%ebp)
104f49: 8b 45 0c mov 0xc(%ebp),%eax
104f4c: 8b 48 fc mov 0xfffffffc(%eax),%ecx
104f4f: e9 93 fe ff ff jmp 104de7 <do_printf+0x117>
104f54: 83 45 0c 04 addl $0x4,0xc(%ebp)
104f58: 8b 55 0c mov 0xc(%ebp),%edx
104f5b: 8b 4a fc mov 0xfffffffc(%edx),%ecx
104f5e: e9 84 fe ff ff jmp 104de7 <do_printf+0x117>
104f63: 83 45 0c 04 addl $0x4,0xc(%ebp)
104f67: 83 65 d4 bf andl $0xffffffbf,0xffffffd4(%ebp)
104f6b: 8b 55 0c mov 0xc(%ebp),%edx
104f6e: 4f dec %edi
104f6f: 8a 42 fc mov 0xfffffffc(%edx),%al
104f72: bb 01 00 00 00 mov $0x1,%ebx
104f77: 88 07 mov %al,(%edi)
104f79: e9 d4 fe ff ff jmp 104e52 <do_printf+0x182>
104f7e: 83 4d d4 04 orl $0x4,0xffffffd4(%ebp)
104f82: bb 0a 00 00 00 mov $0xa,%ebx
104f87: e9 32 fe ff ff jmp 104dbe <do_printf+0xee>
104f8c: bb 08 00 00 00 mov $0x8,%ebx
104f91: e9 28 fe ff ff jmp 104dbe <do_printf+0xee>
104f96: 83 45 0c 04 addl $0x4,0xc(%ebp)
104f9a: 8b 45 0c mov 0xc(%ebp),%eax
104f9d: 83 65 d4 bf andl $0xffffffbf,0xffffffd4(%ebp)
104fa1: 8b 78 fc mov 0xfffffffc(%eax),%edi
104fa4: e9 85 fe ff ff jmp 104e2e <do_printf+0x15e>
104fa9: 83 4d d4 10 orl $0x10,0xffffffd4(%ebp)
104fad: e9 76 fd ff ff jmp 104d28 <do_printf+0x58>
104fb2: 83 4d d4 08 orl $0x8,0xffffffd4(%ebp)
104fb6: e9 6d fd ff ff jmp 104d28 <do_printf+0x58>
104fbb: 81 4d d4 80 00 00 00 orl $0x80,0xffffffd4(%ebp)
104fc2: e9 61 fd ff ff jmp 104d28 <do_printf+0x58>
104fc7: 83 4d d4 40 orl $0x40,0xffffffd4(%ebp)
104fcb: 46 inc %esi
104fcc: 8a 0e mov (%esi),%cl
104fce: e9 89 fd ff ff jmp 104d5c <do_printf+0x8c>
104fd3: f6 45 d4 01 testb $0x1,0xffffffd4(%ebp)
104fd7: 0f 85 ff fe ff ff jne 104edc <do_printf+0x20c>
104fdd: 83 4d d4 01 orl $0x1,0xffffffd4(%ebp)
104fe1: e9 42 fd ff ff jmp 104d28 <do_printf+0x58>
104fe6: 83 ec 08 sub $0x8,%esp
104fe9: 8d 55 14 lea 0x14(%ebp),%edx
104fec: 52 push %edx
104fed: 6a 25 push $0x25
104fef: ff 55 10 call *0x10(%ebp)
104ff2: 31 db xor %ebx,%ebx
104ff4: ff 45 d0 incl 0xffffffd0(%ebp)
104ff7: c7 45 cc 00 00 00 00 movl $0x0,0xffffffcc(%ebp)
104ffe: c7 45 d4 00 00 00 00 movl $0x0,0xffffffd4(%ebp)
105005: e9 18 fd ff ff jmp 104d22 <do_printf+0x52>
...
0010500c <enable>:
/*****************************************************************************
*****************************************************************************/
void enable(void)
{
10500c: 55 push %ebp
10500d: 89 e5 mov %esp,%ebp
__asm__ __volatile__("sti"
10500f: fb sti
:
:
);
}
105010: c9 leave
105011: c3 ret
...
00105014 <inportb>:
/*****************************************************************************
*****************************************************************************/
unsigned inportb(unsigned short port)
{
105014: 55 push %ebp
105015: 89 e5 mov %esp,%ebp
105017: 8b 55 08 mov 0x8(%ebp),%edx
unsigned char ret_val;
__asm__ __volatile__("inb %1,%0"
10501a: ec in (%dx),%al
: "=a"(ret_val)
: "d"(port));
return ret_val;
10501b: 0f b6 c0 movzbl %al,%eax
}
10501e: c9 leave
10501f: c3 ret
00105020 <longjmp>:
4. Save/restore the floating-point state when entering/leaving
the kernel (protected OS only)
*****************************************************************************/
void longjmp(jmp_buf buf, int ret_val)
{
105020: 55 push %ebp
105021: 89 e5 mov %esp,%ebp
105023: 8b 45 0c mov 0xc(%ebp),%eax
unsigned *esp;
/* make sure return value is not 0 */
if(ret_val == 0)
105026: 85 c0 test %eax,%eax
105028: 75 05 jne 10502f <longjmp+0xf>
ret_val++;
10502a: b8 01 00 00 00 mov $0x1,%eax
/* EAX is used for return values, so store it in jmp_buf.EAX */
buf->eax = ret_val;
10502f: 8b 4d 08 mov 0x8(%ebp),%ecx
105032: 89 41 1c mov %eax,0x1c(%ecx)
/* get ESP for new stack */
esp = (unsigned *)buf->esp;
/* push EFLAGS on the new stack */
esp--;
105035: 8b 41 0c mov 0xc(%ecx),%eax
105038: 83 e8 04 sub $0x4,%eax
*esp = buf->eflags;
10503b: 8b 51 24 mov 0x24(%ecx),%edx
10503e: 89 10 mov %edx,(%eax)
/* push current CS on the new stack */
esp--;
105040: 83 e8 04 sub $0x4,%eax
__asm__ __volatile__(
105043: 8c 08 movl %cs,(%eax)
"mov %%cs,%0\n"
: "=m"(*esp));
/* push EIP on the new stack */
esp--;
105045: 83 e8 04 sub $0x4,%eax
*esp = buf->eip;
105048: 8b 51 20 mov 0x20(%ecx),%edx
10504b: 89 10 mov %edx,(%eax)
/* new ESP is 12 bytes lower; update jmp_buf.ESP */
buf->esp = (unsigned)esp;
10504d: 89 41 0c mov %eax,0xc(%ecx)
/* now, briefly, make the jmp_buf struct our stack */
__asm__ __volatile__(
105050: 8b 65 08 mov 0x8(%ebp),%esp
105053: 61 popa
105054: 8b 64 24 ec mov 0xffffffec(%esp,1),%esp
105058: cf iret
"movl %0,%%esp\n"
/* ESP now points to 8 general-purpose registers stored in jmp_buf
Pop them */
"popa\n"
/* load new stack pointer from jmp_buf */
"movl -20(%%esp),%%esp\n"
/* ESP now points to new stack, with the IRET frame (EIP, CS, EFLAGS)
we created just above. Pop these registers: */
"iret\n"
:
: "m"(buf));
}
105059: c9 leave
10505a: c3 ret
...
0010505c <memcpy>:
void *memcpy(void *s, const void *t, unsigned n)
{
10505c: 55 push %ebp
10505d: 89 e5 mov %esp,%ebp
void *ret = s;
while(n--)
10505f: 8b 55 10 mov 0x10(%ebp),%edx
105062: 56 push %esi
105063: 4a dec %edx
105064: 53 push %ebx
105065: 83 fa ff cmp $0xffffffff,%edx
105068: 8b 5d 08 mov 0x8(%ebp),%ebx
10506b: 8b 4d 0c mov 0xc(%ebp),%ecx
10506e: 89 de mov %ebx,%esi
105070: 74 0e je 105080 <memcpy+0x24>
105072: 89 f6 mov %esi,%esi
{
*(char *)s = *(char *)t;
105074: 8a 01 mov (%ecx),%al
s = (char *)s + 1;
t = (char *)t + 1;
105076: 4a dec %edx
105077: 88 03 mov %al,(%ebx)
105079: 41 inc %ecx
10507a: 43 inc %ebx
10507b: 83 fa ff cmp $0xffffffff,%edx
10507e: 75 f4 jne 105074 <memcpy+0x18>
}
return ret;
}
105080: 5b pop %ebx
105081: 89 f0 mov %esi,%eax
105083: 5e pop %esi
105084: c9 leave
105085: c3 ret
...
00105088 <memsetw>:
void *memsetw(void *s, short i, unsigned n)
{
105088: 55 push %ebp
105089: 89 e5 mov %esp,%ebp
void *start = s;
while(n--)
10508b: 8b 55 10 mov 0x10(%ebp),%edx
10508e: 4a dec %edx
10508f: 8b 4d 08 mov 0x8(%ebp),%ecx
105092: 83 fa ff cmp $0xffffffff,%edx
105095: 53 push %ebx
105096: 8b 45 0c mov 0xc(%ebp),%eax
105099: 89 cb mov %ecx,%ebx
10509b: 74 0f je 1050ac <memsetw+0x24>
10509d: 8d 76 00 lea 0x0(%esi),%esi
{
*(short *)s = (short)i;
s = (short *)s + 1;
1050a0: 4a dec %edx
1050a1: 66 89 01 mov %ax,(%ecx)
1050a4: 83 c1 02 add $0x2,%ecx
1050a7: 83 fa ff cmp $0xffffffff,%edx
1050aa: 75 f4 jne 1050a0 <memsetw+0x18>
}
return(start);
}
1050ac: 89 d8 mov %ebx,%eax
1050ae: 5b pop %ebx
1050af: c9 leave
1050b0: c3 ret
1050b1: 00 00 add %al,(%eax)
...
001050b4 <outportb>:
/*****************************************************************************
*****************************************************************************/
void outportb(unsigned port, unsigned val)
{
1050b4: 55 push %ebp
1050b5: 89 e5 mov %esp,%ebp
1050b7: 8b 55 08 mov 0x8(%ebp),%edx
1050ba: 8b 45 0c mov 0xc(%ebp),%eax
__asm__ __volatile__("outb %b0,%w1"
1050bd: ee out %al,(%dx)
:
: "a"(val), "d"(port));
}
1050be: c9 leave
1050bf: c3 ret
001050c0 <printf_help>:
int do_printf(const char *fmt, va_list args, fnptr_t fn, void *ptr);
void putch(unsigned c);
int printf_help(unsigned c, void **ptr)
{
1050c0: 55 push %ebp
1050c1: 89 e5 mov %esp,%ebp
1050c3: 83 ec 14 sub $0x14,%esp
/**
* Leave this for now
*/
ptr = ptr;
putch(c);
1050c6: ff 75 08 pushl 0x8(%ebp)
1050c9: e8 32 fa ff ff call 104b00 <putch>
return 0;
}
1050ce: 31 c0 xor %eax,%eax
1050d0: c9 leave
1050d1: c3 ret
1050d2: 89 f6 mov %esi,%esi
001050d4 <printf>:
void printf(const char *fmt, ...)
{
1050d4: 55 push %ebp
1050d5: 89 e5 mov %esp,%ebp
1050d7: 83 ec 08 sub $0x8,%esp
va_list args;
va_start(args, fmt);
(void)do_printf(fmt, args, printf_help, NULL);
1050da: 6a 00 push $0x0
1050dc: 68 c0 50 10 00 push $0x1050c0
1050e1: 8d 45 0c lea 0xc(%ebp),%eax
1050e4: 50 push %eax
1050e5: ff 75 08 pushl 0x8(%ebp)
1050e8: e8 e3 fb ff ff call 104cd0 <do_printf>
va_end(args);
}
1050ed: c9 leave
1050ee: c3 ret
...
001050f0 <strcmp>:
int strcmp(const char * src, const char * dst)
{
1050f0: 55 push %ebp
1050f1: 89 e5 mov %esp,%ebp
1050f3: 56 push %esi
1050f4: 53 push %ebx
1050f5: 8b 5d 0c mov 0xc(%ebp),%ebx
1050f8: 8b 75 08 mov 0x8(%ebp),%esi
int ret = 0 ;
while(!(ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
1050fb: 8a 0b mov (%ebx),%cl
1050fd: 0f b6 c1 movzbl %cl,%eax
105100: 0f b6 16 movzbl (%esi),%edx
105103: 29 c2 sub %eax,%edx
105105: 89 d0 mov %edx,%eax
105107: 75 1b jne 105124 <strcmp+0x34>
105109: 84 c9 test %cl,%cl
10510b: 74 17 je 105124 <strcmp+0x34>
10510d: 8d 76 00 lea 0x0(%esi),%esi
++src, ++dst;
105110: 43 inc %ebx
105111: 46 inc %esi
105112: 8a 0b mov (%ebx),%cl
105114: 0f b6 c1 movzbl %cl,%eax
105117: 0f b6 16 movzbl (%esi),%edx
10511a: 29 c2 sub %eax,%edx
10511c: 89 d0 mov %edx,%eax
10511e: 75 04 jne 105124 <strcmp+0x34>
105120: 84 c9 test %cl,%cl
105122: 75 ec jne 105110 <strcmp+0x20>
if(ret < 0)
105124: 85 c0 test %eax,%eax
105126: 78 0d js 105135 <strcmp+0x45>
ret = -1 ;
else if(ret > 0)
105128: 85 c0 test %eax,%eax
10512a: 7e 05 jle 105131 <strcmp+0x41>
ret = 1 ;
10512c: b8 01 00 00 00 mov $0x1,%eax
return(ret);
}
105131: 5b pop %ebx
105132: 5e pop %esi
105133: c9 leave
105134: c3 ret
105135: b8 ff ff ff ff mov $0xffffffff,%eax
10513a: eb f5 jmp 105131 <strcmp+0x41>
0010513c <strcpy>:
char *strcpy(char *s, const char *t)
{
10513c: 55 push %ebp
10513d: 89 e5 mov %esp,%ebp
10513f: 8b 4d 08 mov 0x8(%ebp),%ecx
105142: 8b 55 0c mov 0xc(%ebp),%edx
105145: 8d 76 00 lea 0x0(%esi),%esi
while((*(s++) = *(t++)));
105148: 8a 02 mov (%edx),%al
10514a: 88 01 mov %al,(%ecx)
10514c: 42 inc %edx
10514d: 41 inc %ecx
10514e: 84 c0 test %al,%al
105150: 75 f6 jne 105148 <strcpy+0xc>
return s;
}
105152: 89 c8 mov %ecx,%eax
105154: c9 leave
105155: c3 ret
...
00105158 <strlen>:
#include <string.h> /* size_t */
/*****************************************************************************
*****************************************************************************/
size_t strlen(const char *str)
{
105158: 55 push %ebp
105159: 89 e5 mov %esp,%ebp
10515b: 8b 55 08 mov 0x8(%ebp),%edx
size_t ret_val;
for(ret_val = 0; *str != '\0'; str++)
10515e: 31 c0 xor %eax,%eax
105160: 80 3a 00 cmpb $0x0,(%edx)
105163: 74 0a je 10516f <strlen+0x17>
105165: 8d 76 00 lea 0x0(%esi),%esi
105168: 42 inc %edx
ret_val++;
105169: 40 inc %eax
10516a: 80 3a 00 cmpb $0x0,(%edx)
10516d: 75 f9 jne 105168 <strlen+0x10>
return ret_val;
}
10516f: c9 leave
105170: c3 ret
105171: 00 00 add %al,(%eax)
...
00105174 <strncpy>:
#include <string.h> /* size_t */
char *strncpy(char * dest, const char * source, size_t count)
{
105174: 55 push %ebp
105175: 89 e5 mov %esp,%ebp
105177: 8b 55 10 mov 0x10(%ebp),%edx
10517a: 56 push %esi
char *start = dest;
while(count && (*dest++ = *source++)) /* copy string */
10517b: 85 d2 test %edx,%edx
10517d: 53 push %ebx
10517e: 8b 75 08 mov 0x8(%ebp),%esi
105181: 8b 5d 0c mov 0xc(%ebp),%ebx
105184: 74 2a je 1051b0 <strncpy+0x3c>
105186: 8a 03 mov (%ebx),%al
105188: 43 inc %ebx
105189: 84 c0 test %al,%al
10518b: 88 06 mov %al,(%esi)
10518d: 8d 4e 01 lea 0x1(%esi),%ecx
105190: 74 0f je 1051a1 <strncpy+0x2d>
105192: 89 f6 mov %esi,%esi
count--;
105194: 4a dec %edx
105195: 74 19 je 1051b0 <strncpy+0x3c>
105197: 8a 03 mov (%ebx),%al
105199: 88 01 mov %al,(%ecx)
10519b: 43 inc %ebx
10519c: 41 inc %ecx
10519d: 84 c0 test %al,%al
10519f: 75 f3 jne 105194 <strncpy+0x20>
if(count) /* pad out with zeroes */
1051a1: 85 d2 test %edx,%edx
1051a3: 74 0b je 1051b0 <strncpy+0x3c>
while(--count)
1051a5: 4a dec %edx
1051a6: 74 08 je 1051b0 <strncpy+0x3c>
*dest++ = '\0';
1051a8: c6 01 00 movb $0x0,(%ecx)
1051ab: 41 inc %ecx
1051ac: 4a dec %edx
1051ad: 75 f9 jne 1051a8 <strncpy+0x34>
1051af: 90 nop
return(start);
}
1051b0: 5b pop %ebx
1051b1: 89 f0 mov %esi,%eax
1051b3: 5e pop %esi
1051b4: c9 leave
1051b5: c3 ret
1051b6: 5b pop %ebx
1051b7: 20 00 and %al,(%eax)
1051b9: 25 73 3a 20 25 and $0x25203a73,%eax
1051be: 73 00 jae 1051c0 <strncpy+0x4c>
1051c0: 20 5d 00 and %bl,0x0(%ebp)
1051c3: 57 push %edi
1051c4: 61 popa
1051c5: 69 74 00 08 08 08 08 imul $0x46080808,0x8(%eax,%eax,1),%esi
1051cc: 46
1051cd: 61 popa
1051ce: 69 6c 0a 00 08 08 08 imul $0x8080808,0x0(%edx,%ecx,1),%ebp
1051d5: 08
1051d6: 2e 2e 00 4f 6b add %cl,%cs:0x6b(%edi)
1051db: 0a 00 or (%eax),%al
1051dd: 25 30 32 58 20 and $0x20583230,%eax
1051e2: 00 09 add %cl,(%ecx)
1051e4: 00 25 63 00 75 53 add %ah,0x53750063
1051ea: 50 push %eax
1051eb: 3d 25 30 38 58 cmp $0x58383025,%eax
1051f0: 20 75 53 and %dh,0x53(%ebp)
1051f3: 53 push %ebx
1051f4: 3d 25 30 38 58 cmp $0x58383025,%eax
1051f9: 0a 00 or (%eax),%al
1051fb: 00 00 add %al,(%eax)
1051fd: 00 00 add %al,(%eax)
1051ff: 00 45 44 add %al,0x44(%ebp)
105202: 49 dec %ecx
105203: 3d 25 30 38 58 cmp $0x58383025,%eax
105208: 20 45 53 and %al,0x53(%ebp)
10520b: 49 dec %ecx
10520c: 3d 25 30 38 58 cmp $0x58383025,%eax
105211: 20 45 42 and %al,0x42(%ebp)
105214: 50 push %eax
105215: 3d 25 30 38 58 cmp $0x58383025,%eax
10521a: 20 45 53 and %al,0x53(%ebp)
10521d: 50 push %eax
10521e: 3d 25 30 38 58 cmp $0x58383025,%eax
105223: 0a 00 or (%eax),%al
...
10523d: 00 00 add %al,(%eax)
10523f: 00 45 42 add %al,0x42(%ebp)
105242: 58 pop %eax
105243: 3d 25 30 38 58 cmp $0x58383025,%eax
105248: 20 45 44 and %al,0x44(%ebp)
10524b: 58 pop %eax
10524c: 3d 25 30 38 58 cmp $0x58383025,%eax
105251: 20 45 43 and %al,0x43(%ebp)
105254: 58 pop %eax
105255: 3d 25 30 38 58 cmp $0x58383025,%eax
10525a: 20 45 41 and %al,0x41(%ebp)
10525d: 58 pop %eax
10525e: 3d 25 30 38 58 cmp $0x58383025,%eax
105263: 0a 00 or (%eax),%al
...
10527d: 00 00 add %al,(%eax)
10527f: 00 20 add %ah,(%eax)
105281: 44 inc %esp
105282: 53 push %ebx
105283: 3d 25 30 38 58 cmp $0x58383025,%eax
105288: 20 20 and %ah,(%eax)
10528a: 45 inc %ebp
10528b: 53 push %ebx
10528c: 3d 25 30 38 58 cmp $0x58383025,%eax
105291: 20 20 and %ah,(%eax)
105293: 46 inc %esi
105294: 53 push %ebx
105295: 3d 25 30 38 58 cmp $0x58383025,%eax
10529a: 20 20 and %ah,(%eax)
10529c: 47 inc %edi
10529d: 53 push %ebx
10529e: 3d 25 30 38 58 cmp $0x58383025,%eax
1052a3: 0a 00 or (%eax),%al
...
1052bd: 00 00 add %al,(%eax)
1052bf: 00 69 6e add %ch,0x6e(%ecx)
1052c2: 74 3d je 105301 <strncpy+0x18d>
1052c4: 25 30 38 58 20 and $0x20583830,%eax
1052c9: 65 gs
1052ca: 72 72 jb 10533e <strncpy+0x1ca>
1052cc: 3d 25 30 38 58 cmp $0x58383025,%eax
1052d1: 20 45 49 and %al,0x49(%ebp)
1052d4: 50 push %eax
1052d5: 3d 25 30 38 58 cmp $0x58383025,%eax
1052da: 20 20 and %ah,(%eax)
1052dc: 43 inc %ebx
1052dd: 53 push %ebx
1052de: 3d 25 30 38 58 cmp $0x58383025,%eax
1052e3: 0a 00 or (%eax),%al
...
1052fd: 00 00 add %al,(%eax)
1052ff: 00 64 75 6d add %ah,0x6d(%ebp,%esi,2)
105303: 70 68 jo 10536d <strncpy+0x1f9>
105305: 65 gs
105306: 61 popa
105307: 70 00 jo 105309 <strncpy+0x195>
105309: 00 2d 68 00 00 00 add %ch,0x68
...
10531f: 00 50 72 add %dl,0x72(%eax)
105322: 69 6e 74 20 6c 69 73 imul $0x73696c20,0x74(%esi),%ebp
105329: 74 69 je 105394 <strncpy+0x220>
10532b: 6e outsb %ds:(%esi),(%dx)
10532c: 67 20 6f 66 addr16 and %ch,102(%bx)
105330: 20 68 65 and %ch,0x65(%eax)
105333: 61 popa
105334: 70 20 jo 105356 <strncpy+0x1e2>
105336: 75 73 jne 1053ab <strncpy+0x237>
105338: 61 popa
105339: 67 65 20 61 6e addr16 and %ah,%gs:110(%bx,%di)
10533e: 64 20 73 74 and %dh,%fs:0x74(%ebx)
105342: 61 popa
105343: 74 75 je 1053ba <strncpy+0x246>
105345: 73 2e jae 105375 <strncpy+0x201>
105347: 00 00 add %al,(%eax)
105349: 65 63 68 6f arpl %bp,%gs:0x6f(%eax)
...
10535d: 00 00 add %al,(%eax)
10535f: 00 45 63 add %al,0x63(%ebp)
105362: 68 6f 20 61 20 push $0x2061206f
105367: 6c insb (%dx),%es:(%edi)
105368: 69 6e 65 20 6f 66 20 imul $0x20666f20,0x65(%esi),%ebp
10536f: 74 65 je 1053d6 <strncpy+0x262>
105371: 78 74 js 1053e7 <strncpy+0x273>
105373: 20 74 6f 20 and %dh,0x20(%edi,%ebp,2)
105377: 74 68 je 1053e1 <strncpy+0x26d>
105379: 65 20 74 65 72 and %dh,%gs:0x72(%ebp,2)
10537e: 6d insl (%dx),%es:(%edi)
10537f: 69 6e 61 6c 2e 00 00 imul $0x2e6c,0x61(%esi),%ebp
105386: 68 65 6c 70 00 push $0x706c65
...
10539f: 00 44 69 73 add %al,0x73(%ecx,%ebp,2)
1053a3: 70 6c jo 105411 <strncpy+0x29d>
1053a5: 61 popa
1053a6: 79 73 jns 10541b <strncpy+0x2a7>
1053a8: 20 67 65 and %ah,0x65(%edi)
1053ab: 6e outsb %ds:(%esi),(%dx)
1053ac: 65 gs
1053ad: 72 61 jb 105410 <strncpy+0x29c>
1053af: 6c insb (%dx),%es:(%edi)
1053b0: 20 68 65 and %ch,0x65(%eax)
1053b3: 6c insb (%dx),%es:(%edi)
1053b4: 70 20 jo 1053d6 <strncpy+0x262>
1053b6: 6d insl (%dx),%es:(%edi)
1053b7: 65 6e outsb %gs:(%esi),(%dx)
1053b9: 75 20 jne 1053db <strncpy+0x267>
1053bb: 6f outsl %ds:(%esi),(%dx)
1053bc: 72 20 jb 1053de <strncpy+0x26a>
1053be: 68 65 6c 70 20 push $0x20706c65
1053c3: 6f outsl %ds:(%esi),(%dx)
1053c4: 6e outsb %ds:(%esi),(%dx)
1053c5: 20 73 70 and %dh,0x70(%ebx)
1053c8: 65 63 69 66 arpl %bp,%gs:0x66(%ecx)
1053cc: 69 63 20 63 6f 6d 6d imul $0x6d6d6f63,0x20(%ebx),%esp
1053d3: 61 popa
1053d4: 6e outsb %ds:(%esi),(%dx)
1053d5: 64 2e 00 00 add %al,%cs:%fs:(%eax)
1053d9: 73 68 jae 105443 <strncpy+0x2cf>
1053db: 75 74 jne 105451 <strncpy+0x2dd>
1053dd: 64 6f outsl %fs:(%esi),(%dx)
1053df: 77 6e ja 10544f <strncpy+0x2db>
1053e1: 00 00 add %al,(%eax)
1053e3: 2d 72 00 00 4e sub $0x4e000072,%eax
1053e8: 4f dec %edi
1053e9: 57 push %edi
1053ea: 00 00 add %al,(%eax)
1053ec: 48 dec %eax
1053ed: 61 popa
1053ee: 6c insb (%dx),%es:(%edi)
1053ef: 74 20 je 105411 <strncpy+0x29d>
1053f1: 6f outsl %ds:(%esi),(%dx)
1053f2: 72 20 jb 105414 <strncpy+0x2a0>
1053f4: 72 65 jb 10545b <strncpy+0x2e7>
1053f6: 73 74 jae 10546c <strncpy+0x2f8>
1053f8: 61 popa
1053f9: 72 74 jb 10546f <strncpy+0x2fb>
1053fb: 20 74 68 65 and %dh,0x65(%eax,%ebp,2)
1053ff: 20 73 79 and %dh,0x79(%ebx)
105402: 73 74 jae 105478 <strncpy+0x304>
105404: 65 gs
105405: 6d insl (%dx),%es:(%edi)
105406: 2e 00 00 add %al,%cs:(%eax)
105409: 63 6c 73 00 arpl %bp,0x0(%ebx,%esi,2)
...
10541d: 00 00 add %al,(%eax)
10541f: 00 43 6c add %al,0x6c(%ebx)
105422: 65 gs
105423: 61 popa
105424: 72 73 jb 105499 <strncpy+0x325>
105426: 20 74 68 65 and %dh,0x65(%eax,%ebp,2)
10542a: 20 74 65 72 and %dh,0x72(%ebp,2)
10542e: 6d insl (%dx),%es:(%edi)
10542f: 69 6e 61 6c 20 6f 66 imul $0x666f206c,0x61(%esi),%ebp
105436: 20 61 6c and %ah,0x6c(%ecx)
105439: 6c insb (%dx),%es:(%edi)
10543a: 20 6f 75 and %ch,0x75(%edi)
10543d: 74 70 je 1054af <strncpy+0x33b>
10543f: 75 74 jne 1054b5 <strncpy+0x341>
105441: 2e 00 00 add %al,%cs:(%eax)
105444: 70 77 jo 1054bd <strncpy+0x349>
105446: 64 00 00 add %al,%fs:(%eax)
...
10545d: 00 00 add %al,(%eax)
10545f: 00 50 72 add %dl,0x72(%eax)
105462: 69 6e 74 73 20 74 68 imul $0x68742073,0x74(%esi),%ebp
105469: 65 20 63 75 and %ah,%gs:0x75(%ebx)
10546d: 72 72 jb 1054e1 <strncpy+0x36d>
10546f: 65 6e outsb %gs:(%esi),(%dx)
105471: 74 20 je 105493 <strncpy+0x31f>
105473: 77 6f ja 1054e4 <strncpy+0x370>
105475: 72 6b jb 1054e2 <strncpy+0x36e>
105477: 69 6e 67 20 64 69 72 imul $0x72696420,0x67(%esi),%ebp
10547e: 65 63 74 6f 72 arpl %si,%gs:0x72(%edi,%ebp,2)
105483: 79 2e jns 1054b3 <strncpy+0x33f>
105485: 00 00 add %al,(%eax)
105487: 68 65 6c 70 00 push $0x706c65
10548c: 65 gs
10548d: 73 68 jae 1054f7 <strncpy+0x383>
10548f: 3a 20 cmp (%eax),%ah
105491: 27 daa
105492: 25 73 27 20 6e and $0x6e202773,%eax
105497: 6f outsl %ds:(%esi),(%dx)
105498: 74 20 je 1054ba <strncpy+0x346>
10549a: 66 6f outsw %ds:(%esi),(%dx)
10549c: 75 6e jne 10550c <strncpy+0x398>
10549e: 64 2e 0a 00 or %cs:%fs:(%eax),%al
1054a2: 55 push %ebp
1054a3: 73 61 jae 105506 <strncpy+0x392>
1054a5: 67 65 3a 20 addr16 cmp %gs:(%bx,%si),%ah
1054a9: 25 73 20 25 73 and $0x73252073,%eax
1054ae: 0a 00 or (%eax),%al
1054b0: 48 dec %eax
1054b1: 79 62 jns 105515 <strncpy+0x3a1>
1054b3: 4f dec %edi
1054b4: 53 push %ebx
1054b5: 20 45 53 and %al,0x53(%ebp)
1054b8: 68 65 6c 6c 20 push $0x206c6c65
1054bd: 43 inc %ebx
1054be: 6f outsl %ds:(%esi),(%dx)
1054bf: 6d insl (%dx),%es:(%edi)
1054c0: 6d insl (%dx),%es:(%edi)
1054c1: 61 popa
1054c2: 6e outsb %ds:(%esi),(%dx)
1054c3: 64 fs
1054c4: 73 3a jae 105500 <strncpy+0x38c>
1054c6: 0a 00 or (%eax),%al
1054c8: 25 31 30 73 20 and $0x20733031,%eax
1054cd: 25 2d 73 0a 00 and $0xa732d,%eax
1054d2: 08 20 or %ah,(%eax)
1054d4: 08 00 or %al,(%eax)
1054d6: 24 20 and $0x20,%al
1054d8: 00 4f 6b add %cl,0x6b(%edi)
1054db: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1054df: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1054e3: 00 94 09 10 00 c2 09 add %dl,0x9c20010(%ecx,%ecx,1)
1054ea: 10 00 adc %al,(%eax)
1054ec: e3 09 jecxz 1054f7 <strncpy+0x383>
1054ee: 10 00 adc %al,(%eax)
1054f0: 03 0a add (%edx),%ecx
1054f2: 10 00 adc %al,(%eax)
1054f4: 24 0a and $0xa,%al
1054f6: 10 00 adc %al,(%eax)
1054f8: 4a dec %edx
1054f9: 0a 10 or (%eax),%dl
1054fb: 00 71 0a add %dh,0xa(%ecx)
1054fe: 10 00 adc %al,(%eax)
105500: 97 xchg %eax,%edi
105501: 0a 10 or (%eax),%dl
105503: 00 be 0a 10 00 e4 add %bh,0xe400100a(%esi)
105509: 0a 10 or (%eax),%dl
10550b: 00 0b add %cl,(%ebx)
10550d: 0b 10 or (%eax),%edx
10550f: 00 31 add %dh,(%ecx)
105511: 0b 10 or (%eax),%edx
105513: 00 57 0b add %dl,0xb(%edi)
105516: 10 00 adc %al,(%eax)
105518: 64 12 10 adc %fs:(%eax),%dl
10551b: 00 61 0b add %ah,0xb(%ecx)
10551e: 10 00 adc %al,(%eax)
105520: 88 0b mov %cl,(%ebx)
105522: 10 00 adc %al,(%eax)
105524: ae scas %es:(%edi),%al
105525: 0b 10 or (%eax),%edx
105527: 00 d4 add %dl,%ah
105529: 0b 10 or (%eax),%edx
10552b: 00 fb add %bh,%bl
10552d: 0b 10 or (%eax),%edx
10552f: 00 22 add %ah,(%edx)
105531: 0c 10 or $0x10,%al
105533: 00 48 0c add %cl,0xc(%eax)
105536: 10 00 adc %al,(%eax)
105538: 6e outsb %ds:(%esi),(%dx)
105539: 0c 10 or $0x10,%al
10553b: 00 95 0c 10 00 bc add %dl,0xbc00100c(%ebp)
105541: 0c 10 or $0x10,%al
105543: 00 e2 add %ah,%dl
105545: 0c 10 or $0x10,%al
105547: 00 08 add %cl,(%eax)
105549: 0d 10 00 2f 0d or $0xd2f0010,%eax
10554e: 10 00 adc %al,(%eax)
105550: 64 12 10 adc %fs:(%eax),%dl
105553: 00 39 add %bh,(%ecx)
105555: 0d 10 00 60 0d or $0xd600010,%eax
10555a: 10 00 adc %al,(%eax)
10555c: 86 0d 10 00 ac 0d xchg %cl,0xdac0010
105562: 10 00 adc %al,(%eax)
105564: d3 0d 10 00 fa 0d rorl %cl,0xdfa0010
10556a: 10 00 adc %al,(%eax)
10556c: 20 0e and %cl,(%esi)
10556e: 10 00 adc %al,(%eax)
105570: 46 inc %esi
105571: 0e push %cs
105572: 10 00 adc %al,(%eax)
105574: 6d insl (%dx),%es:(%edi)
105575: 0e push %cs
105576: 10 00 adc %al,(%eax)
105578: 94 xchg %eax,%esp
105579: 0e push %cs
10557a: 10 00 adc %al,(%eax)
10557c: ba 0e 10 00 e0 mov $0xe000100e,%edx
105581: 0e push %cs
105582: 10 00 adc %al,(%eax)
105584: 64 12 10 adc %fs:(%eax),%dl
105587: 00 ea add %ch,%dl
105589: 0e push %cs
10558a: 10 00 adc %al,(%eax)
10558c: 11 0f adc %ecx,(%edi)
10558e: 10 00 adc %al,(%eax)
105590: 38 0f cmp %cl,(%edi)
105592: 10 00 adc %al,(%eax)
105594: 5f pop %edi
105595: 0f 10 00 movups (%eax),%xmm0
105598: 85 0f test %ecx,(%edi)
10559a: 10 00 adc %al,(%eax)
10559c: ab stos %eax,%es:(%edi)
10559d: 0f 10 00 movups (%eax),%xmm0
1055a0: d2 0f rorb %cl,(%edi)
1055a2: 10 00 adc %al,(%eax)
1055a4: f9 stc
1055a5: 0f 10 00 movups (%eax),%xmm0
1055a8: 1f pop %ds
1055a9: 10 10 adc %dl,(%eax)
1055ab: 00 45 10 add %al,0x10(%ebp)
1055ae: 10 00 adc %al,(%eax)
1055b0: 6c insb (%dx),%es:(%edi)
1055b1: 10 10 adc %dl,(%eax)
1055b3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1055b7: 00 92 10 10 00 64 add %dl,0x64001010(%edx)
1055bd: 12 10 adc (%eax),%dl
1055bf: 00 9c 10 10 00 64 12 add %bl,0x12640010(%eax,%edx,1)
1055c6: 10 00 adc %al,(%eax)
1055c8: 64 12 10 adc %fs:(%eax),%dl
1055cb: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1055cf: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1055d3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1055d7: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1055db: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1055df: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1055e3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1055e7: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1055eb: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1055ef: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1055f3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1055f7: 00 a6 10 10 00 cc add %ah,0xcc001010(%esi)
1055fd: 10 10 adc %dl,(%eax)
1055ff: 00 f3 add %dh,%bl
105601: 10 10 adc %dl,(%eax)
105603: 00 19 add %bl,(%ecx)
105605: 11 10 adc %edx,(%eax)
105607: 00 23 add %ah,(%ebx)
105609: 11 10 adc %edx,(%eax)
10560b: 00 4a 11 add %cl,0x11(%edx)
10560e: 10 00 adc %al,(%eax)
105610: 70 11 jo 105623 <strncpy+0x4af>
105612: 10 00 adc %al,(%eax)
105614: 97 xchg %eax,%edi
105615: 11 10 adc %edx,(%eax)
105617: 00 a1 11 10 00 c7 add %ah,0xc7001011(%ecx)
10561d: 11 10 adc %edx,(%eax)
10561f: 00 ee add %ch,%dh
105621: 11 10 adc %edx,(%eax)
105623: 00 14 12 add %dl,(%edx,%edx,1)
105626: 10 00 adc %al,(%eax)
105628: 3b 12 cmp (%edx),%edx
10562a: 10 00 adc %al,(%eax)
10562c: 64 12 10 adc %fs:(%eax),%dl
10562f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105633: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105637: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10563b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10563f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105643: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105647: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10564b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10564f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105653: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105657: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10565b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10565f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105663: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105667: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10566b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10566f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105673: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105677: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10567b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10567f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105683: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105687: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10568b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10568f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105693: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105697: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10569b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10569f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056a3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056a7: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056ab: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056af: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056b3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056b7: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056bb: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056bf: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056c3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056c7: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056cb: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056cf: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056d3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056d7: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056db: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056df: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056e3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056e7: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056eb: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056ef: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056f3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056f7: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056fb: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1056ff: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105703: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105707: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10570b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10570f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105713: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105717: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10571b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10571f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105723: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105727: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10572b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10572f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105733: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105737: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10573b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10573f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105743: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105747: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10574b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10574f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105753: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105757: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10575b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10575f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105763: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105767: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10576b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10576f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105773: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105777: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10577b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10577f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105783: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105787: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10578b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10578f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105793: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105797: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10579b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10579f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057a3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057a7: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057ab: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057af: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057b3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057b7: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057bb: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057bf: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057c3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057c7: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057cb: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057cf: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057d3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057d7: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057db: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057df: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057e3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057e7: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057eb: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057ef: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057f3: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057f7: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057fb: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
1057ff: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105803: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105807: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10580b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10580f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105813: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105817: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10581b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10581f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105823: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105827: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10582b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10582f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105833: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105837: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10583b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10583f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105843: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105847: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10584b: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10584f: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105853: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
105857: 00 64 12 10 add %ah,0x10(%edx,%edx,1)
10585b: 00 98 08 10 00 69 add %bl,0x69001008(%eax)
105861: 6e outsb %ds:(%esi),(%dx)
105862: 69 74 3a 20 6b 65 79 imul $0x6279656b,0x20(%edx,%edi,1),%esi
105869: 62
10586a: 6f outsl %ds:(%esi),(%dx)
10586b: 61 popa
10586c: 72 64 jb 1058d2 <strncpy+0x75e>
10586e: 20 25 32 75 20 62 and %ah,0x62207532
105874: 75 66 jne 1058dc <strncpy+0x768>
105876: 2c 20 sub $0x20,%al
105878: 25 32 75 62 20 and $0x20627532,%eax
10587d: 65 gs
10587e: 61 popa
10587f: 63 68 20 arpl %bp,0x20(%eax)
...
10589e: 00 00 add %al,(%eax)
1058a0: 5d pop %ebp
1058a1: 2e cs
1058a2: 2e cs
1058a3: 2e cs
1058a4: 2e cs
1058a5: 2e cs
1058a6: 2e cs
1058a7: 2e cs
1058a8: 2e cs
1058a9: 2e cs
1058aa: 2e cs
1058ab: 2e cs
1058ac: 2e cs
1058ad: 2e cs
1058ae: 2e cs
1058af: 2e cs
1058b0: 2e cs
1058b1: 2e cs
1058b2: 2e cs
1058b3: 2e cs
1058b4: 2e cs
1058b5: 2e cs
1058b6: 2e cs
1058b7: 2e cs
1058b8: 2e 2e 2e 2e 2e 2e 2e add %dl,%cs:(%edx)
1058bf: 2e 2e 2e 2e 2e 2e 2e
1058c6: 2e 2e 2e 2e 2e 2e 00
1058cd: 0a
1058ce: 0a 70 61 or 0x61(%eax),%dh
1058d1: 6e outsb %ds:(%esi),(%dx)
1058d2: 69 63 3a 20 00 0a 0a imul $0xa0a0020,0x3a(%ebx),%esp
1058d9: 53 push %ebx
1058da: 79 73 jns 10594f <strncpy+0x7db>
1058dc: 74 65 je 105943 <strncpy+0x7cf>
1058de: 6d insl (%dx),%es:(%edi)
1058df: 20 68 61 and %ch,0x61(%eax)
1058e2: 6c insb (%dx),%es:(%edi)
1058e3: 74 65 je 10594a <strncpy+0x7d6>
1058e5: 64 2e 00 44 69 76 add %al,%cs:%fs:0x76(%ecx,%ebp,2)
1058eb: 69 64 65 20 65 72 72 imul $0x6f727265,0x20(%ebp,2),%esp
1058f2: 6f
1058f3: 72 00 jb 1058f5 <strncpy+0x781>
1058f5: 44 inc %esp
1058f6: 65 62 75 67 bound %esi,%gs:0x67(%ebp)
1058fa: 20 65 78 and %ah,0x78(%ebp)
1058fd: 63 65 70 arpl %sp,0x70(%ebp)
105900: 74 69 je 10596b <strncpy+0x7f7>
105902: 6f outsl %ds:(%esi),(%dx)
105903: 6e outsb %ds:(%esi),(%dx)
105904: 00 4e 6f add %cl,0x6f(%esi)
105907: 6e outsb %ds:(%esi),(%dx)
105908: 6d insl (%dx),%es:(%edi)
105909: 61 popa
10590a: 73 6b jae 105977 <strncpy+0x803>
10590c: 61 popa
10590d: 62 6c 65 20 bound %ebp,0x20(%ebp,2)
105911: 69 6e 74 65 72 72 75 imul $0x75727265,0x74(%esi),%ebp
105918: 70 74 jo 10598e <strncpy+0x81a>
10591a: 20 28 and %ch,(%eax)
10591c: 4e dec %esi
10591d: 4d dec %ebp
10591e: 49 dec %ecx
10591f: 29 00 sub %eax,(%eax)
105921: 42 inc %edx
105922: 72 65 jb 105989 <strncpy+0x815>
105924: 61 popa
105925: 6b 70 6f 69 imul $0x69,0x6f(%eax),%esi
105929: 6e outsb %ds:(%esi),(%dx)
10592a: 74 20 je 10594c <strncpy+0x7d8>
10592c: 28 49 4e sub %cl,0x4e(%ecx)
10592f: 54 push %esp
105930: 33 29 xor (%ecx),%ebp
105932: 00 4f 76 add %cl,0x76(%edi)
105935: 65 gs
105936: 72 66 jb 10599e <strncpy+0x82a>
105938: 6c insb (%dx),%es:(%edi)
105939: 6f outsl %ds:(%esi),(%dx)
10593a: 77 20 ja 10595c <strncpy+0x7e8>
10593c: 28 49 4e sub %cl,0x4e(%ecx)
10593f: 54 push %esp
105940: 4f dec %edi
105941: 29 00 sub %eax,(%eax)
105943: 42 inc %edx
105944: 6f outsl %ds:(%esi),(%dx)
105945: 75 6e jne 1059b5 <strncpy+0x841>
105947: 64 fs
105948: 73 20 jae 10596a <strncpy+0x7f6>
10594a: 63 68 65 arpl %bp,0x65(%eax)
10594d: 63 6b 00 arpl %bp,0x0(%ebx)
105950: 49 dec %ecx
105951: 6e outsb %ds:(%esi),(%dx)
105952: 76 61 jbe 1059b5 <strncpy+0x841>
105954: 6c insb (%dx),%es:(%edi)
105955: 69 64 20 6f 70 63 6f imul $0x646f6370,0x6f(%eax,1),%esp
10595c: 64
10595d: 65 00 43 6f add %al,%gs:0x6f(%ebx)
105961: 70 72 jo 1059d5 <strncpy+0x861>
105963: 6f outsl %ds:(%esi),(%dx)
105964: 63 65 73 arpl %sp,0x73(%ebp)
105967: 73 6f jae 1059d8 <strncpy+0x864>
105969: 72 20 jb 10598b <strncpy+0x817>
10596b: 6e outsb %ds:(%esi),(%dx)
10596c: 6f outsl %ds:(%esi),(%dx)
10596d: 74 20 je 10598f <strncpy+0x81b>
10596f: 61 popa
105970: 76 61 jbe 1059d3 <strncpy+0x85f>
105972: 69 6c 61 62 6c 65 00 imul $0x4400656c,0x62(%ecx,2),%ebp
105979: 44
10597a: 6f outsl %ds:(%esi),(%dx)
10597b: 75 62 jne 1059df <strncpy+0x86b>
10597d: 6c insb (%dx),%es:(%edi)
10597e: 65 20 66 61 and %ah,%gs:0x61(%esi)
105982: 75 6c jne 1059f0 <strncpy+0x87c>
105984: 74 00 je 105986 <strncpy+0x812>
105986: 43 inc %ebx
105987: 6f outsl %ds:(%esi),(%dx)
105988: 70 72 jo 1059fc <strncpy+0x888>
10598a: 6f outsl %ds:(%esi),(%dx)
10598b: 63 65 73 arpl %sp,0x73(%ebp)
10598e: 73 6f jae 1059ff <strncpy+0x88b>
105990: 72 20 jb 1059b2 <strncpy+0x83e>
105992: 73 65 jae 1059f9 <strncpy+0x885>
105994: 67 6d addr16 insl (%dx),%es:(%di)
105996: 65 6e outsb %gs:(%esi),(%dx)
105998: 74 20 je 1059ba <strncpy+0x846>
10599a: 6f outsl %ds:(%esi),(%dx)
10599b: 76 65 jbe 105a02 <strncpy+0x88e>
10599d: 72 72 jb 105a11 <strncpy+0x89d>
10599f: 75 6e jne 105a0f <strncpy+0x89b>
1059a1: 00 49 6e add %cl,0x6e(%ecx)
1059a4: 76 61 jbe 105a07 <strncpy+0x893>
1059a6: 6c insb (%dx),%es:(%edi)
1059a7: 69 64 20 54 53 53 00 imul $0x53005353,0x54(%eax,1),%esp
1059ae: 53
1059af: 65 gs
1059b0: 67 6d addr16 insl (%dx),%es:(%di)
1059b2: 65 6e outsb %gs:(%esi),(%dx)
1059b4: 74 20 je 1059d6 <strncpy+0x862>
1059b6: 6e outsb %ds:(%esi),(%dx)
1059b7: 6f outsl %ds:(%esi),(%dx)
1059b8: 74 20 je 1059da <strncpy+0x866>
1059ba: 70 72 jo 105a2e <strncpy+0x8ba>
1059bc: 65 gs
1059bd: 73 65 jae 105a24 <strncpy+0x8b0>
1059bf: 6e outsb %ds:(%esi),(%dx)
1059c0: 74 00 je 1059c2 <strncpy+0x84e>
1059c2: 53 push %ebx
1059c3: 74 61 je 105a26 <strncpy+0x8b2>
1059c5: 63 6b 20 arpl %bp,0x20(%ebx)
1059c8: 65 gs
1059c9: 78 63 js 105a2e <strncpy+0x8ba>
1059cb: 65 gs
1059cc: 70 74 jo 105a42 <strncpy+0x8ce>
1059ce: 69 6f 6e 00 47 65 6e imul $0x6e654700,0x6e(%edi),%ebp
1059d5: 65 gs
1059d6: 72 61 jb 105a39 <strncpy+0x8c5>
1059d8: 6c insb (%dx),%es:(%edi)
1059d9: 20 50 72 and %dl,0x72(%eax)
1059dc: 6f outsl %ds:(%esi),(%dx)
1059dd: 74 65 je 105a44 <strncpy+0x8d0>
1059df: 63 74 69 6f arpl %si,0x6f(%ecx,%ebp,2)
1059e3: 6e outsb %ds:(%esi),(%dx)
1059e4: 20 46 61 and %al,0x61(%esi)
1059e7: 75 6c jne 105a55 <strncpy+0x8e1>
1059e9: 74 00 je 1059eb <strncpy+0x877>
1059eb: 50 push %eax
1059ec: 61 popa
1059ed: 67 65 20 66 61 addr16 and %ah,%gs:97(%bp)
1059f2: 75 6c jne 105a60 <strncpy+0x8ec>
1059f4: 74 00 je 1059f6 <strncpy+0x882>
1059f6: 43 inc %ebx
1059f7: 6f outsl %ds:(%esi),(%dx)
1059f8: 70 72 jo 105a6c <strncpy+0x8f8>
1059fa: 6f outsl %ds:(%esi),(%dx)
1059fb: 63 65 73 arpl %sp,0x73(%ebp)
1059fe: 73 6f jae 105a6f <strncpy+0x8fb>
105a00: 72 20 jb 105a22 <strncpy+0x8ae>
105a02: 65 gs
105a03: 72 72 jb 105a77 <strncpy+0x903>
105a05: 6f outsl %ds:(%esi),(%dx)
105a06: 72 00 jb 105a08 <strncpy+0x894>
105a08: 41 inc %ecx
105a09: 6c insb (%dx),%es:(%edi)
105a0a: 69 67 6e 6d 65 6e 74 imul $0x746e656d,0x6e(%edi),%esp
105a11: 20 63 68 and %ah,0x68(%ebx)
105a14: 65 63 6b 00 arpl %bp,%gs:0x0(%ebx)
105a18: 3f aas
105a19: 3f aas
105a1a: 00 49 52 add %cl,0x52(%ecx)
105a1d: 51 push %ecx
105a1e: 30 00 xor %al,(%eax)
105a20: 49 dec %ecx
105a21: 52 push %edx
105a22: 51 push %ecx
105a23: 31 00 xor %eax,(%eax)
105a25: 49 dec %ecx
105a26: 52 push %edx
105a27: 51 push %ecx
105a28: 32 00 xor (%eax),%al
105a2a: 49 dec %ecx
105a2b: 52 push %edx
105a2c: 51 push %ecx
105a2d: 33 00 xor (%eax),%eax
105a2f: 49 dec %ecx
105a30: 52 push %edx
105a31: 51 push %ecx
105a32: 34 00 xor $0x0,%al
105a34: 49 dec %ecx
105a35: 52 push %edx
105a36: 51 push %ecx
105a37: 35 00 49 52 51 xor $0x51524900,%eax
105a3c: 36 00 49 52 add %cl,%ss:0x52(%ecx)
105a40: 51 push %ecx
105a41: 37 aaa
105a42: 00 49 52 add %cl,0x52(%ecx)
105a45: 51 push %ecx
105a46: 38 00 cmp %al,(%eax)
105a48: 49 dec %ecx
105a49: 52 push %edx
105a4a: 51 push %ecx
105a4b: 39 00 cmp %eax,(%eax)
105a4d: 49 dec %ecx
105a4e: 52 push %edx
105a4f: 51 push %ecx
105a50: 31 30 xor %esi,(%eax)
105a52: 00 49 52 add %cl,0x52(%ecx)
105a55: 51 push %ecx
105a56: 31 31 xor %esi,(%ecx)
105a58: 00 49 52 add %cl,0x52(%ecx)
105a5b: 51 push %ecx
105a5c: 31 32 xor %esi,(%edx)
105a5e: 00 49 52 add %cl,0x52(%ecx)
105a61: 51 push %ecx
105a62: 31 33 xor %esi,(%ebx)
105a64: 00 49 52 add %cl,0x52(%ecx)
105a67: 51 push %ecx
105a68: 31 34 00 xor %esi,(%eax,%eax,1)
105a6b: 49 dec %ecx
105a6c: 52 push %edx
105a6d: 51 push %ecx
105a6e: 31 35 00 73 79 73 xor %esi,0x73797300
105a74: 63 61 6c arpl %sp,0x6c(%ecx)
105a77: 6c insb (%dx),%es:(%edi)
105a78: 00 0a add %cl,(%edx)
105a7a: 0a 70 61 or 0x61(%eax),%dh
105a7d: 6e outsb %ds:(%esi),(%dx)
105a7e: 69 63 3a 20 45 78 63 imul $0x63784520,0x3a(%ebx),%esp
105a85: 65 gs
105a86: 70 74 jo 105afc <strncpy+0x988>
105a88: 69 6f 6e 20 30 78 25 imul $0x25783020,0x6e(%edi),%ebp
105a8f: 30 38 xor %bh,(%eax)
105a91: 58 pop %eax
105a92: 00 20 add %ah,(%eax)
105a94: 28 25 73 29 00 75 sub %ah,0x75002973
105a9a: 73 65 jae 105b01 <ex.0+0x1>
105a9c: 64 00 62 6c add %ah,%fs:0x6c(%edx)
105aa0: 6f outsl %ds:(%esi),(%dx)
105aa1: 63 6b 20 arpl %bp,0x20(%ebx)
105aa4: 25 35 70 3a 20 and $0x203a7035,%eax
105aa9: 25 36 75 20 62 and $0x62207536,%eax
105aae: 79 74 jns 105b24 <ex.0+0x24>
105ab0: 65 gs
105ab1: 73 20 jae 105ad3 <strncpy+0x95f>
105ab3: 25 73 0a 00 66 and $0x66000a73,%eax
105ab8: 72 65 jb 105b1f <ex.0+0x1f>
105aba: 65 00 69 6e add %ch,%gs:0x6e(%ecx)
105abe: 69 74 00 45 6e 61 62 imul $0x6c62616e,0x45(%eax,%eax,1),%esi
105ac5: 6c
105ac6: 69 6e 67 20 68 61 72 imul $0x72616820,0x67(%esi),%ebp
105acd: 64 fs
105ace: 77 61 ja 105b31 <ex.0+0x31>
105ad0: 72 65 jb 105b37 <ex.0+0x37>
105ad2: 20 69 6e and %ch,0x6e(%ecx)
105ad5: 74 65 je 105b3c <ex.0+0x3c>
105ad7: 72 72 jb 105b4b <ex.0+0x4b>
105ad9: 75 70 jne 105b4b <ex.0+0x4b>
105adb: 74 73 je 105b50 <ex.0+0x50>
105add: 00 4d 6f add %cl,0x6f(%ebp)
105ae0: 72 65 jb 105b47 <ex.0+0x47>
105ae2: 20 77 6f and %dh,0x6f(%edi)
105ae5: 72 6b jb 105b52 <ex.0+0x52>
105ae7: 20 6e 65 and %ch,0x65(%esi)
105aea: 65 gs
105aeb: 64 fs
105aec: 73 20 jae 105b0e <ex.0+0xe>
105aee: 74 6f je 105b5f <ex.0+0x5f>
105af0: 20 62 65 and %ah,0x65(%edx)
105af3: 20 64 6f 6e and %ah,0x6e(%edi,%ebp,2)
105af7: 65 0a 00 or %gs:(%eax),%al
105afa: 00 00 add %al,(%eax)
105afc: 00 00 add %al,(%eax)
...
00105b00 <ex.0>:
105b00: e8 58 10 00 08 00 00 00 56 00 00 00 f5 58 10 00 .X......V....X..
105b10: 05 00 00 00 56 00 00 00 05 59 10 00 07 00 00 00 ....V....Y......
105b20: 56 00 00 00 21 59 10 00 07 00 00 00 56 00 00 00 V...!Y......V...
105b30: 33 59 10 00 08 00 00 00 ba 00 00 00 43 59 10 00 3Y..........CY..
105b40: 08 00 00 00 ba 00 00 00 50 59 10 00 04 00 00 00 ........PY......
105b50: ba 00 00 00 5f 59 10 00 08 00 00 00 ba 00 00 00 ...._Y..........
105b60: 79 59 10 00 07 00 00 00 1e 01 00 00 86 59 10 00 yY...........Y..
105b70: 0b 00 00 00 1e 01 00 00 a2 59 10 00 0b 00 00 00 .........Y......
105b80: 1e 01 00 00 ae 59 10 00 0b 00 00 00 1e 01 00 00 .....Y..........
105b90: c2 59 10 00 0b 00 00 00 1e 01 00 00 d2 59 10 00 .Y...........Y..
105ba0: 0b 00 00 00 1e 01 00 00 eb 59 10 00 0b 00 00 00 .........Y......
105bb0: 82 01 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ................
105bc0: f6 59 10 00 08 00 00 00 82 01 00 00 08 5a 10 00 .Y...........Z..
...
105bd8: 18 5a 10 00 00 00 00 00 00 00 00 00 18 5a 10 00 .Z...........Z..
...
105bf0: 18 5a 10 00 00 00 00 00 00 00 00 00 18 5a 10 00 .Z...........Z..
...
105c08: 18 5a 10 00 00 00 00 00 00 00 00 00 18 5a 10 00 .Z...........Z..
...
105c20: 18 5a 10 00 00 00 00 00 00 00 00 00 18 5a 10 00 .Z...........Z..
...
105c38: 18 5a 10 00 00 00 00 00 00 00 00 00 18 5a 10 00 .Z...........Z..
...
105c50: 18 5a 10 00 00 00 00 00 00 00 00 00 18 5a 10 00 .Z...........Z..
...
105c68: 18 5a 10 00 00 00 00 00 00 00 00 00 18 5a 10 00 .Z...........Z..
...
105c80: 1b 5a 10 00 00 00 00 00 00 00 00 00 20 5a 10 00 .Z.......... Z..
...
105c98: 25 5a 10 00 00 00 00 00 00 00 00 00 2a 5a 10 00 %Z..........*Z..
...
105cb0: 2f 5a 10 00 00 00 00 00 00 00 00 00 34 5a 10 00 /Z..........4Z..
...
105cc8: 39 5a 10 00 00 00 00 00 00 00 00 00 3e 5a 10 00 9Z..........>Z..
...
105ce0: 43 5a 10 00 00 00 00 00 00 00 00 00 48 5a 10 00 CZ..........HZ..
...
105cf8: 4d 5a 10 00 00 00 00 00 00 00 00 00 53 5a 10 00 MZ..........SZ..
...
105d10: 59 5a 10 00 00 00 00 00 00 00 00 00 5f 5a 10 00 YZ.........._Z..
...
105d28: 65 5a 10 00 00 00 00 00 00 00 00 00 6b 5a 10 00 eZ..........kZ..
...
105d40: 71 5a 10 00 00 00 00 00 00 00 00 00 qZ..........
00105d4c <irq0_int.1>:
105d4c: 20 00 00 00 ...
00105d50 <irq8_int.2>:
105d50: 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (...............
105d60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
105d70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
105d80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a ===============.
...
105da0: 62 6c 6f 63 6b 73 3a 20 25 36 75 20 75 73 65 64 blocks: %6u used
105db0: 2c 20 25 36 75 20 66 72 65 65 2c 20 25 36 75 20 , %6u free, %6u
105dc0: 74 6f 74 61 6c 0a 00 00 00 00 00 00 00 00 00 00 total...........
...
105de0: 20 62 79 74 65 73 3a 20 25 36 75 20 75 73 65 64 bytes: %6u used
105df0: 2c 20 25 36 75 20 66 72 65 65 2c 20 25 36 75 20 , %6u free, %6u
105e00: 74 6f 74 61 6c 0a 00 00 00 00 00 00 00 00 00 00 total...........
...
105e20: 67 5f 68 65 61 70 5f 62 6f 74 3d 30 78 25 70 2c g_heap_bot=0x%p,
105e30: 20 67 5f 6b 62 72 6b 3d 30 78 25 70 2c 20 67 5f g_kbrk=0x%p, g_
105e40: 68 65 61 70 5f 74 6f 70 3d 30 78 25 70 0a 00 00 heap_top=0x%p...
...
105e60: 2a 2a 2a 20 73 6f 6d 65 20 68 65 61 70 20 6d 65 *** some heap me
105e70: 6d 6f 72 79 20 69 73 20 6e 6f 74 20 61 63 63 6f mory is not acco
105e80: 75 6e 74 65 64 20 66 6f 72 0a 00 00 00 00 00 00 unted for.......
...
105ea0: 6b 65 72 6e 65 6c 20 68 65 61 70 20 69 73 20 63 kernel heap is c
105eb0: 6f 72 72 75 70 74 20 69 6e 20 6d 61 6c 6c 6f 63 orrupt in malloc
105ec0: 28 29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ()..............
...
105ee0: 61 74 74 65 6d 70 74 20 74 6f 20 66 72 65 65 28 attempt to free(
105ef0: 29 20 62 6c 6f 63 6b 20 61 74 20 30 78 25 70 20 ) block at 0x%p
105f00: 77 69 74 68 20 62 61 64 20 6d 61 67 69 63 20 76 with bad magic v
105f10: 61 6c 75 65 00 00 00 00 00 00 00 00 00 00 00 00 alue............
105f20: 6b 65 72 6e 65 6c 20 68 65 61 70 20 69 73 20 63 kernel heap is c
105f30: 6f 72 72 75 70 74 20 69 6e 20 66 72 65 65 28 29 orrupt in free()
...
105f60: 61 74 74 65 6d 70 74 20 74 6f 20 66 72 65 65 28 attempt to free(
105f70: 29 20 62 6c 6f 63 6b 20 61 74 20 30 78 25 70 20 ) block at 0x%p
105f80: 74 68 61 74 20 69 73 20 6e 6f 74 20 69 6e 20 74 that is not in t
105f90: 68 65 20 68 65 61 70 00 00 00 00 00 00 00 00 00 he heap.........
105fa0: 55 6e 61 62 6c 65 20 74 6f 20 72 75 6e 20 74 65 Unable to run te
105fb0: 73 74 68 65 61 70 20 2d 2d 20 6b 6d 61 6c 6c 6f stheap -- kmallo
105fc0: 63 28 29 20 69 73 20 62 72 6f 6b 65 6e 2e 0a 00 c() is broken...
...
105fe0: 61 74 74 65 6d 70 74 20 74 6f 20 72 65 61 6c 6c attempt to reall
105ff0: 6f 63 28 29 20 62 6c 6f 63 6b 20 61 74 20 30 78 oc() block at 0x
106000: 25 70 20 77 69 74 68 20 62 61 64 20 6d 61 67 69 %p with bad magi
106010: 63 20 76 61 6c 75 65 00 00 00 00 00 00 00 00 00 c value.........
106020: 49 6e 73 74 61 6c 6c 69 6e 67 20 6b 65 79 62 6f Installing keybo
106030: 61 72 64 20 69 6e 74 65 72 72 75 70 74 20 68 61 ard interrupt ha
106040: 6e 64 6c 65 72 00 00 00 00 00 00 00 00 00 00 00 ndler...........
...
106060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
106070: 20 20 20 20 20 20 20 20 20 5f 20 20 20 5f 20 20 _ _
106080: 5f 20 20 5f 20 20 5f 5f 5f 5f 20 20 5f 5f 5f 5f _ _ ____ ____
106090: 5f 20 20 5f 5f 5f 20 20 20 20 20 20 20 20 20 20 _ ___
1060a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
...
1060c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1060d0: 20 20 20 20 20 20 20 20 28 20 29 5f 28 20 29 28 ( )_( )(
1060e0: 20 5c 2f 20 29 28 20 20 5f 20 5c 28 20 20 5f 20 \/ )( _ \( _
1060f0: 20 29 2f 20 5f 5f 29 20 20 20 20 20 20 20 20 20 )/ __)
106100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
...
106120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
106130: 20 20 20 20 20 20 20 20 20 29 20 5f 20 28 20 20 ) _ (
106140: 5c 20 20 2f 20 20 29 20 5f 20 3c 20 29 28 5f 29 \ / ) _ < )(_)
106150: 28 20 5c 5f 5f 20 5c 20 20 20 20 20 20 20 20 20 ( \__ \
106160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
...
106180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
106190: 20 20 20 20 20 20 20 20 28 5f 29 20 28 5f 29 20 (_) (_)
1061a0: 28 5f 5f 29 20 28 5f 5f 5f 5f 2f 28 5f 5f 5f 5f (__) (____/(____
1061b0: 5f 29 28 5f 5f 5f 2f 20 20 20 20 20 20 20 20 20 _)(___/
1061c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1061d0: 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
1061e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1061f0: 20 20 20 20 20 20 20 20 48 79 62 72 69 64 20 4f Hybrid O
106200: 70 65 72 61 74 69 6e 67 20 53 79 73 74 65 6d 20 perating System
106210: 28 48 79 62 4f 53 29 20 20 20 20 20 20 20 20 20 (HybOS)
106220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
106230: 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
106240: 41 4c 54 20 2b 20 46 31 20 2d 20 46 38 20 66 6f ALT + F1 - F8 fo
106250: 72 20 76 69 72 74 75 61 6c 20 74 65 72 6d 69 6e r virtual termin
106260: 61 6c 73 0a 00 00 00 00 00 00 00 00 00 00 00 00 als.............
...
106280: 54 68 72 65 65 20 66 69 6e 67 65 72 20 73 61 6c Three finger sal
106290: 75 74 65 20 74 6f 20 72 65 73 74 61 72 74 0a 00 ute to restart..
1062a0: 49 6e 69 74 69 61 6c 69 7a 69 6e 67 20 6d 65 6d Initializing mem
1062b0: 6f 72 79 20 6d 61 6e 61 67 65 6d 65 6e 74 00 00 ory management..
1062c0: 00 00 00 00 74 61 73 6b 20 68 61 6e 64 6c 65 72 ....task handler
...
001062e0 <ansi_to_vga.0>:
1062e0: 00 00 00 00 04 00 00 00 02 00 00 00 06 00 00 00 ................
1062f0: 01 00 00 00 05 00 00 00 03 00 00 00 07 00 00 00 ................
106300: 1b 5b 32 4a 00 6d 6f 6e 6f 00 5d 2e 2e 2e 2e 2e .[2J.mono.].....
106310: 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 00 63 6f 6c 6f ............colo
106320: 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 r...............
...
106340: 69 6e 69 74 3a 20 76 69 64 65 6f 20 25 35 73 20 init: video %5s
106350: 65 6d 75 6c 61 74 69 6f 6e 2c 20 25 32 75 78 25 emulation, %2ux%
106360: 32 75 2c 20 66 72 61 6d 65 62 75 66 66 65 72 20 2u, framebuffer
106370: 61 74 20 30 78 25 31 58 20 00 00 00 0c 4d 10 00 at 0x%1X ....M..
106380: 40 4d 10 00 5c 4d 10 00 76 4d 10 00 98 4d 10 00 @M..\M..vM...M..
106390: b5 4d 10 00 dc 4e 10 00 dc 4e 10 00 dc 4e 10 00 .M...N...N...N..
1063a0: dc 4e 10 00 dc 4e 10 00 dc 4e 10 00 dc 4e 10 00 .N...N...N...N..
1063b0: dc 4e 10 00 dc 4e 10 00 dc 4e 10 00 63 4f 10 00 .N...N...N..cO..
1063c0: 7e 4f 10 00 dc 4e 10 00 dc 4e 10 00 dc 4e 10 00 ~O...N...N...N..
1063d0: dc 4e 10 00 7e 4f 10 00 dc 4e 10 00 dc 4e 10 00 .N..~O...N...N..
1063e0: dc 4e 10 00 dc 4e 10 00 b9 4d 10 00 8c 4f 10 00 .N...N...M...O..
1063f0: b9 4d 10 00 dc 4e 10 00 dc 4e 10 00 96 4f 10 00 .M...N...N...O..
106400: dc 4e 10 00 82 4f 10 00 dc 4e 10 00 dc 4e 10 00 .N...O...N...N..
106410: b9 4d 10 00 00 00 00 00 00 00 00 00 00 00 00 00 .M..............
...