idt.asm (9906B)
1 section .data 2 int_counter db 0 3 4 section .text 5 global int_handler_0 6 int_handler_0: 7 mov ax, 0x10 8 mov gs, ax 9 mov dword [gs:0xB8000],'0 ' 10 hlt 11 12 global int_handler_1 13 int_handler_1: 14 mov ax, 0x10 15 mov gs, ax 16 mov dword [gs:0xB8000],'1 ' 17 hlt 18 19 global int_handler_2 20 int_handler_2: 21 mov ax, 0x10 22 mov gs, ax 23 mov dword [gs:0xB8000],'2 ' 24 hlt 25 26 global int_handler_3 27 int_handler_3: 28 mov ax, 0x10 29 mov gs, ax 30 mov dword [gs:0xB8000],'3 ' 31 hlt 32 33 global int_handler_4 34 int_handler_4: 35 mov ax, 0x10 36 mov gs, ax 37 mov dword [gs:0xB8000],'4 ' 38 hlt 39 40 global int_handler_5 41 int_handler_5: 42 mov ax, 0x10 43 mov gs, ax 44 mov dword [gs:0xB8000],'5 ' 45 hlt 46 47 global int_handler_6 48 int_handler_6: 49 mov ax, 0x10 50 mov gs, ax 51 mov dword [gs:0xB8000],'6 ' 52 hlt 53 54 global int_handler_7 55 int_handler_7: 56 mov ax, 0x10 57 mov gs, ax 58 mov dword [gs:0xB8000],'7 ' 59 hlt 60 61 global int_handler_8 62 int_handler_8: 63 mov ax, 0x10 64 mov gs, ax 65 mov dword [gs:0xB8000],'8 ' 66 hlt 67 68 global int_handler_9 69 int_handler_9: 70 mov ax, 0x10 71 mov gs, ax 72 mov dword [gs:0xB8000],'9 ' 73 hlt 74 75 global int_handler_10 76 int_handler_10: 77 mov ax, 0x10 78 mov gs, ax 79 mov dword [gs:0xB8000],'1 0 ' 80 hlt 81 82 global int_handler_11 83 int_handler_11: 84 mov ax, 0x10 85 mov gs, ax 86 mov dword [gs:0xB8000],'1 1 ' 87 hlt 88 89 global int_handler_12 90 int_handler_12: 91 mov ax, 0x10 92 mov gs, ax 93 mov dword [gs:0xB8000],'1 2 ' 94 hlt 95 96 global int_handler_13 97 int_handler_13: 98 mov ax, 0x10 99 mov gs, ax 100 mov dword [gs:0xB8000],'1 3 ' 101 hlt 102 103 global int_handler_14 104 int_handler_14: 105 mov ax, 0x10 106 mov gs, ax 107 mov dword [gs:0xB8000],'1 4 ' 108 hlt 109 110 global int_handler_15 111 int_handler_15: 112 mov ax, 0x10 113 mov gs, ax 114 mov dword [gs:0xB8000],'1 5 ' 115 hlt 116 117 global int_handler_16 118 int_handler_16: 119 mov ax, 0x10 120 mov gs, ax 121 mov dword [gs:0xB8000],'1 6 ' 122 hlt 123 124 global int_handler_17 125 int_handler_17: 126 mov ax, 0x10 127 mov gs, ax 128 mov dword [gs:0xB8000],'1 7 ' 129 hlt 130 131 global int_handler_18 132 int_handler_18: 133 mov ax, 0x10 134 mov gs, ax 135 mov dword [gs:0xB8000],'1 8 ' 136 hlt 137 138 global int_handler_19 139 int_handler_19: 140 mov ax, 0x10 141 mov gs, ax 142 mov dword [gs:0xB8000],'1 9 ' 143 hlt 144 145 global int_handler_20 146 int_handler_20: 147 mov ax, 0x10 148 mov gs, ax 149 mov dword [gs:0xB8000],'2 0 ' 150 hlt 151 152 global int_handler_21 153 int_handler_21: 154 mov ax, 0x10 155 mov gs, ax 156 mov dword [gs:0xB8000],'2 1 ' 157 hlt 158 159 global int_handler_22 160 int_handler_22: 161 mov ax, 0x10 162 mov gs, ax 163 mov dword [gs:0xB8000],'2 2 ' 164 hlt 165 166 global int_handler_23 167 int_handler_23: 168 mov ax, 0x10 169 mov gs, ax 170 mov dword [gs:0xB8000],'2 3 ' 171 hlt 172 173 global int_handler_24 174 int_handler_24: 175 mov ax, 0x10 176 mov gs, ax 177 mov dword [gs:0xB8000],'2 4 ' 178 hlt 179 180 global int_handler_25 181 int_handler_25: 182 mov ax, 0x10 183 mov gs, ax 184 mov dword [gs:0xB8000],'2 5 ' 185 hlt 186 187 global int_handler_26 188 int_handler_26: 189 mov ax, 0x10 190 mov gs, ax 191 mov dword [gs:0xB8000],'2 6 ' 192 hlt 193 194 global int_handler_27 195 int_handler_27: 196 mov ax, 0x10 197 mov gs, ax 198 mov dword [gs:0xB8000],'2 7 ' 199 hlt 200 201 global int_handler_28 202 int_handler_28: 203 mov ax, 0x10 204 mov gs, ax 205 mov dword [gs:0xB8000],'2 8 ' 206 hlt 207 208 global int_handler_29 209 int_handler_29: 210 mov ax, 0x10 211 mov gs, ax 212 mov dword [gs:0xB8000],'2 9 ' 213 hlt 214 215 global int_handler_30 216 int_handler_30: 217 mov ax, 0x10 218 mov gs, ax 219 mov dword [gs:0xB8000],'3 0 ' 220 hlt 221 222 global int_handler_31 223 int_handler_31: 224 mov ax, 0x10 225 mov gs, ax 226 mov dword [gs:0xB8000],'3 1 ' 227 hlt 228 229 global int_handler_32 230 int_handler_32: 231 mov ax, 0x10 232 mov gs, ax 233 xor ax, ax 234 mov al, byte [gs:int_counter] 235 inc al 236 mov byte [gs:int_counter], al 237 mov bl, 18 238 div bl 239 mov byte [gs:0xB8000], al 240 mov al, 0x20 241 out 0x20, al 242 iret 243 244 extern keyboard_irq_handler 245 global int_handler_33 246 int_handler_33: 247 mov ax, 0x10 248 mov gs, ax 249 mov dword [gs:0xB8000],'3 3 ' 250 call keyboard_irq_handler 251 mov al, 0x20 252 out 0x20, al 253 iret 254 255 global int_handler_34 256 int_handler_34: 257 mov ax, 0x10 258 mov gs, ax 259 mov dword [gs:0xB8000],'3 4 ' 260 hlt 261 262 global int_handler_35 263 int_handler_35: 264 mov ax, 0x10 265 mov gs, ax 266 mov dword [gs:0xB8000],'3 5 ' 267 hlt 268 269 global int_handler_36 270 int_handler_36: 271 mov ax, 0x10 272 mov gs, ax 273 mov dword [gs:0xB8000],'3 6 ' 274 hlt 275 276 global int_handler_37 277 int_handler_37: 278 mov ax, 0x10 279 mov gs, ax 280 mov dword [gs:0xB8000],'3 7 ' 281 hlt 282 283 global int_handler_38 284 int_handler_38: 285 mov ax, 0x10 286 mov gs, ax 287 mov dword [gs:0xB8000],'3 8 ' 288 hlt 289 290 global int_handler_39 291 int_handler_39: 292 mov ax, 0x10 293 mov gs, ax 294 mov dword [gs:0xB8000],'3 9 ' 295 hlt 296 297 global int_handler_40 298 int_handler_40: 299 mov ax, 0x10 300 mov gs, ax 301 mov dword [gs:0xB8000],'4 0 ' 302 hlt 303 304 global int_handler_41 305 int_handler_41: 306 mov ax, 0x10 307 mov gs, ax 308 mov dword [gs:0xB8000],'4 1 ' 309 hlt 310 311 global int_handler_42 312 int_handler_42: 313 mov ax, 0x10 314 mov gs, ax 315 mov dword [gs:0xB8000],'4 2 ' 316 hlt 317 318 global int_handler_43 319 int_handler_43: 320 mov ax, 0x10 321 mov gs, ax 322 mov dword [gs:0xB8000],'4 3 ' 323 hlt 324 325 global int_handler_44 326 int_handler_44: 327 mov ax, 0x10 328 mov gs, ax 329 mov dword [gs:0xB8000],'4 4 ' 330 hlt 331 332 global int_handler_45 333 int_handler_45: 334 mov ax, 0x10 335 mov gs, ax 336 mov dword [gs:0xB8000],'4 5 ' 337 hlt 338 339 global int_handler_46 340 int_handler_46: 341 mov ax, 0x10 342 mov gs, ax 343 mov dword [gs:0xB8000],'4 6 ' 344 hlt 345 346 global int_handler_47 347 int_handler_47: 348 mov ax, 0x10 349 mov gs, ax 350 mov dword [gs:0xB8000],'4 7 ' 351 hlt 352 353 global int_handler_48 354 int_handler_48: 355 mov ax, 0x10 356 mov gs, ax 357 mov dword [gs:0xB8000],'4 8 ' 358 hlt 359 360 global int_handler_49 361 int_handler_49: 362 mov ax, 0x10 363 mov gs, ax 364 mov dword [gs:0xB8000],'4 9 ' 365 hlt 366 367 global int_handler_50 368 int_handler_50: 369 mov ax, 0x10 370 mov gs, ax 371 mov dword [gs:0xB8000],'5 0 ' 372 hlt 373 374 global int_handler_51 375 int_handler_51: 376 mov ax, 0x10 377 mov gs, ax 378 mov dword [gs:0xB8000],'5 1 ' 379 hlt 380 381 global int_handler_52 382 int_handler_52: 383 mov ax, 0x10 384 mov gs, ax 385 mov dword [gs:0xB8000],'5 2 ' 386 hlt 387 388 global int_handler_53 389 int_handler_53: 390 mov ax, 0x10 391 mov gs, ax 392 mov dword [gs:0xB8000],'5 3 ' 393 hlt 394 395 global int_handler_54 396 int_handler_54: 397 mov ax, 0x10 398 mov gs, ax 399 mov dword [gs:0xB8000],'5 4 ' 400 hlt 401 402 global int_handler_55 403 int_handler_55: 404 mov ax, 0x10 405 mov gs, ax 406 mov dword [gs:0xB8000],'5 5 ' 407 hlt 408 409 global int_handler_56 410 int_handler_56: 411 mov ax, 0x10 412 mov gs, ax 413 mov dword [gs:0xB8000],'5 6 ' 414 hlt 415 416 global int_handler_57 417 int_handler_57: 418 mov ax, 0x10 419 mov gs, ax 420 mov dword [gs:0xB8000],'5 7 ' 421 hlt 422 423 global int_handler_58 424 int_handler_58: 425 mov ax, 0x10 426 mov gs, ax 427 mov dword [gs:0xB8000],'5 8 ' 428 hlt 429 430 global int_handler_59 431 int_handler_59: 432 mov ax, 0x10 433 mov gs, ax 434 mov dword [gs:0xB8000],'5 9 ' 435 hlt 436 437 global int_handler_60 438 int_handler_60: 439 mov ax, 0x10 440 mov gs, ax 441 mov dword [gs:0xB8000],'6 0 ' 442 hlt 443 444 global int_handler_61 445 int_handler_61: 446 mov ax, 0x10 447 mov gs, ax 448 mov dword [gs:0xB8000],'6 1 ' 449 hlt 450 451 global int_handler_62 452 int_handler_62: 453 mov ax, 0x10 454 mov gs, ax 455 mov dword [gs:0xB8000],'6 2 ' 456 hlt 457 458 global int_handler_63 459 int_handler_63: 460 mov ax, 0x10 461 mov gs, ax 462 mov dword [gs:0xB8000],'6 3 ' 463 hlt 464 465 global int_handler_64 466 int_handler_64: 467 mov ax, 0x10 468 mov gs, ax 469 mov dword [gs:0xB8000],'6 4 ' 470 hlt 471 472 global int_handler_65 473 int_handler_65: 474 mov ax, 0x10 475 mov gs, ax 476 mov dword [gs:0xB8000],'6 5 ' 477 hlt 478 479 global int_handler_66 480 int_handler_66: 481 mov ax, 0x10 482 mov gs, ax 483 mov dword [gs:0xB8000],'6 6 ' 484 hlt 485 486 global int_handler_67 487 int_handler_67: 488 mov ax, 0x10 489 mov gs, ax 490 mov dword [gs:0xB8000],'6 7 ' 491 hlt 492 493 global int_handler_68 494 int_handler_68: 495 mov ax, 0x10 496 mov gs, ax 497 mov dword [gs:0xB8000],'6 8 ' 498 hlt 499 500 global int_handler_69 501 int_handler_69: 502 mov ax, 0x10 503 mov gs, ax 504 mov dword [gs:0xB8000],'6 9 ' 505 hlt 506 507 global int_handler_70 508 int_handler_70: 509 mov ax, 0x10 510 mov gs, ax 511 mov dword [gs:0xB8000],'7 0 ' 512 hlt 513 514 global int_handler_71 515 int_handler_71: 516 mov ax, 0x10 517 mov gs, ax 518 mov dword [gs:0xB8000],'7 1 ' 519 hlt 520 521 global int_handler_72 522 int_handler_72: 523 mov ax, 0x10 524 mov gs, ax 525 mov dword [gs:0xB8000],'7 2 ' 526 hlt 527 528 global int_handler_73 529 int_handler_73: 530 mov ax, 0x10 531 mov gs, ax 532 mov dword [gs:0xB8000],'7 3 ' 533 hlt 534 535 global int_handler_74 536 int_handler_74: 537 mov ax, 0x10 538 mov gs, ax 539 mov dword [gs:0xB8000],'7 4 ' 540 hlt 541 542 global int_handler_75 543 int_handler_75: 544 mov ax, 0x10 545 mov gs, ax 546 mov dword [gs:0xB8000],'7 5 ' 547 hlt 548 549 global int_handler_76 550 int_handler_76: 551 mov ax, 0x10 552 mov gs, ax 553 mov dword [gs:0xB8000],'7 6 ' 554 hlt 555 556 global int_handler_77 557 int_handler_77: 558 mov ax, 0x10 559 mov gs, ax 560 mov dword [gs:0xB8000],'7 7 ' 561 hlt 562 563 global int_handler_78 564 int_handler_78: 565 mov ax, 0x10 566 mov gs, ax 567 mov dword [gs:0xB8000],'7 8 ' 568 hlt 569 570 global int_handler_79 571 int_handler_79: 572 mov ax, 0x10 573 mov gs, ax 574 mov dword [gs:0xB8000],'7 9 ' 575 hlt 576 577 global int_handler_80 578 int_handler_80: 579 mov ax, 0x10 580 mov gs, ax 581 mov dword [gs:0xB8000],'8 0 ' 582 hlt 583 584 global int_handler_81 585 int_handler_81: 586 mov ax, 0x10 587 mov gs, ax 588 mov dword [gs:0xB8000],'8 1 ' 589 hlt 590 591 global int_handler_82 592 int_handler_82: 593 mov ax, 0x10 594 mov gs, ax 595 mov dword [gs:0xB8000],'8 2 ' 596 hlt 597 598 global int_handler_83 599 int_handler_83: 600 mov ax, 0x10 601 mov gs, ax 602 mov dword [gs:0xB8000],'8 3 ' 603 hlt 604 605 global int_handler_84 606 int_handler_84: 607 mov ax, 0x10 608 mov gs, ax 609 mov dword [gs:0xB8000],'8 4 ' 610 hlt 611 612 global int_handler_85 613 int_handler_85: 614 mov ax, 0x10 615 mov gs, ax 616 mov dword [gs:0xB8000],'8 5 ' 617 hlt 618 619 global int_handler_86 620 int_handler_86: 621 mov ax, 0x10 622 mov gs, ax 623 mov dword [gs:0xB8000],'8 6 ' 624 hlt 625 626 global int_handler_87 627 int_handler_87: 628 mov ax, 0x10 629 mov gs, ax 630 mov dword [gs:0xB8000],'8 7 ' 631 hlt 632 633 global int_handler_88 634 int_handler_88: 635 mov ax, 0x10 636 mov gs, ax 637 mov dword [gs:0xB8000],'8 8 ' 638 hlt 639 640 global int_handler_89 641 int_handler_89: 642 mov ax, 0x10 643 mov gs, ax 644 mov dword [gs:0xB8000],'8 9 ' 645 hlt 646 647 global int_handler_90 648 int_handler_90: 649 mov ax, 0x10 650 mov gs, ax 651 mov dword [gs:0xB8000],'9 0 ' 652 hlt 653 654 global int_handler_91 655 int_handler_91: 656 mov ax, 0x10 657 mov gs, ax 658 mov dword [gs:0xB8000],'9 1 ' 659 hlt 660 661 global int_handler_92 662 int_handler_92: 663 mov ax, 0x10 664 mov gs, ax 665 mov dword [gs:0xB8000],'9 2 ' 666 hlt 667 668 global int_handler_93 669 int_handler_93: 670 mov ax, 0x10 671 mov gs, ax 672 mov dword [gs:0xB8000],'9 3 ' 673 hlt 674 675 global int_handler_94 676 int_handler_94: 677 mov ax, 0x10 678 mov gs, ax 679 mov dword [gs:0xB8000],'9 4 ' 680 hlt 681 682 global int_handler_95 683 int_handler_95: 684 mov ax, 0x10 685 mov gs, ax 686 mov dword [gs:0xB8000],'9 5 ' 687 hlt 688 689 global int_handler_96 690 int_handler_96: 691 mov ax, 0x10 692 mov gs, ax 693 mov dword [gs:0xB8000],'9 6 ' 694 hlt 695 696 global int_handler_97 697 int_handler_97: 698 mov ax, 0x10 699 mov gs, ax 700 mov dword [gs:0xB8000],'9 7 ' 701 hlt 702 703 global int_handler_98 704 int_handler_98: 705 mov ax, 0x10 706 mov gs, ax 707 mov dword [gs:0xB8000],'9 8 ' 708 hlt 709 710 global int_handler_99 711 int_handler_99: 712 mov ax, 0x10 713 mov gs, ax 714 mov dword [gs:0xB8000],'9 9 ' 715 hlt 716