Rev 2130 | Rev 2142 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2130 | Rev 2141 | ||
---|---|---|---|
Line 66... | Line 66... | ||
66 | ;; |
66 | ;; |
67 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
67 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 68... | Line 68... | ||
68 | 68 | ||
Line 69... | Line 69... | ||
69 | include 'macros.inc' |
69 | include 'macros.inc' |
Line 70... | Line 70... | ||
70 | 70 | ||
Line 71... | Line 71... | ||
71 | $Revision: 2130 $ |
71 | $Revision: 2141 $ |
Line 614... | Line 614... | ||
614 | ; Try to Initialize APIC |
614 | ; Try to Initialize APIC |
615 | call APIC_init |
615 | call APIC_init |
Line 616... | Line 616... | ||
616 | 616 | ||
Line 617... | Line -... | ||
617 | call pci_irq_fixup |
- | |
618 | - | ||
619 | call unmask_timer |
- | |
620 | - | ||
621 | ; SET KEYBOARD PARAMETERS |
- | |
622 | mov al, 0xf6 ; reset keyboard, scan enabled |
- | |
623 | call kb_write |
- | |
624 | - | ||
625 | ; wait until 8042 is ready |
- | |
626 | xor ecx,ecx |
- | |
627 | @@: |
- | |
628 | in al,64h |
- | |
629 | and al,00000010b |
- | |
630 | loopnz @b |
- | |
631 | - | ||
632 | ; mov al, 0xED ; Keyboard LEDs - only for testing! |
- | |
633 | ; call kb_write |
- | |
634 | ; call kb_read |
- | |
635 | ; mov al, 111b |
- | |
636 | ; call kb_write |
- | |
637 | ; call kb_read |
- | |
638 | - | ||
639 | mov al, 0xF3 ; set repeat rate & delay |
- | |
640 | call kb_write |
- | |
641 | ; call kb_read |
- | |
642 | mov al, 0 ; 30 250 ;00100010b ; 24 500 ;00100100b ; 20 500 |
- | |
643 | call kb_write |
- | |
644 | ; call kb_read |
- | |
645 | ;// mike.dld [ |
- | |
646 | call set_lights |
- | |
647 | stdcall attach_int_handler, 1, irq1, 0 |
- | |
648 | - | ||
649 | ;// mike.dld ] |
- | |
650 | 617 | call pci_irq_fixup |
|
651 | 618 | ||
652 | ; Enable timer IRQ (IRQ0) and hard drives IRQs (IRQ14, IRQ15) |
- | |
- | 619 | ; Enable timer IRQ (IRQ0) and hard drives IRQs (IRQ14, IRQ15) |
|
- | 620 | ; they are used: when partitions are scanned, hd_read relies on timer |
|
653 | ; they are used: when partitions are scanned, hd_read relies on timer |
621 | call unmask_timer |
- | 622 | stdcall enable_irq, 2 ; @#$%! PIC |
|
654 | 623 | stdcall enable_irq, 6 ; FDD |
|
655 | stdcall enable_irq, 6 ; FDD |
624 | stdcall enable_irq, 13 ; co-processor |
Line 656... | Line 625... | ||
656 | stdcall enable_irq, 14 |
625 | stdcall enable_irq, 14 |
657 | stdcall enable_irq, 15 |
626 | stdcall enable_irq, 15 |
Line 855... | Line 824... | ||
855 | 824 | ||
Line 856... | Line 825... | ||
856 | ; SET VARIABLES |
825 | ; SET VARIABLES |
Line 857... | Line -... | ||
857 | - | ||
858 | call set_variables |
- | |
859 | - | ||
860 | ; SET MOUSE |
- | |
861 | - | ||
862 | stdcall load_driver, szPS2MDriver |
- | |
863 | ; stdcall load_driver, szCOM_MDriver |
- | |
864 | - | ||
865 | mov esi,boot_setmouse |
- | |
866 | call boot_log |
- | |
867 | call setmouse |
826 | |
Line 868... | Line 827... | ||
868 | 827 | call set_variables |
|
869 | 828 | ||
Line 944... | Line 903... | ||
944 | 903 | ||
945 | ;mov [TASK_COUNT],dword 2 |
904 | ;mov [TASK_COUNT],dword 2 |
946 | push 1 |
905 | push 1 |
Line -... | Line 906... | ||
- | 906 | pop dword [CURRENT_TASK] ; set OS task fisrt |
|
- | 907 | ||
- | 908 | ; stdcall enable_irq, 1 |
|
- | 909 | ||
- | 910 | ; SET KEYBOARD PARAMETERS |
|
- | 911 | mov al, 0xf6 ; reset keyboard, scan enabled |
|
- | 912 | call kb_write |
|
- | 913 | ||
- | 914 | ; wait until 8042 is ready |
|
- | 915 | xor ecx,ecx |
|
- | 916 | @@: |
|
- | 917 | in al,64h |
|
- | 918 | and al,00000010b |
|
- | 919 | loopnz @b |
|
- | 920 | ||
- | 921 | ; mov al, 0xED ; Keyboard LEDs - only for testing! |
|
- | 922 | ; call kb_write |
|
- | 923 | ; call kb_read |
|
- | 924 | ; mov al, 111b |
|
- | 925 | ; call kb_write |
|
- | 926 | ; call kb_read |
|
- | 927 | ||
- | 928 | mov al, 0xF3 ; set repeat rate & delay |
|
- | 929 | call kb_write |
|
- | 930 | ; call kb_read |
|
- | 931 | mov al, 0 ; 30 250 ;00100010b ; 24 500 ;00100100b ; 20 500 |
|
- | 932 | call kb_write |
|
- | 933 | ; call kb_read |
|
- | 934 | ;// mike.dld [ |
|
- | 935 | call set_lights |
|
- | 936 | ;// mike.dld ] |
|
- | 937 | stdcall attach_int_handler, 1, irq1, 0 |
|
- | 938 | ||
- | 939 | ; SET MOUSE |
|
- | 940 | ||
- | 941 | stdcall load_driver, szPS2MDriver |
|
- | 942 | ; stdcall load_driver, szCOM_MDriver |
|
- | 943 | ||
- | 944 | mov esi,boot_setmouse |
|
Line 947... | Line 945... | ||
947 | pop dword [CURRENT_TASK] ; set OS task fisrt |
945 | call boot_log |
Line 948... | Line 946... | ||
948 | 946 | call setmouse |
|
Line 997... | Line 995... | ||
997 | .bll1: in al, 0x60 ; wait for ESC key press |
995 | .bll1: in al, 0x60 ; wait for ESC key press |
998 | cmp al, 129 |
996 | cmp al, 129 |
999 | jne .bll1 |
997 | jne .bll1 |
1000 | end if |
998 | end if |
Line 1001... | Line -... | ||
1001 | - | ||
1002 | cli ;guarantee forbidance of interrupts. |
- | |
1003 | stdcall enable_irq, 2 ; @#$%! PIC |
- | |
1004 | stdcall enable_irq, 13 ; co-processor |
999 | |
1005 | cmp [IDEContrRegsBaseAddr], 0 |
1000 | cmp [IDEContrRegsBaseAddr], 0 |
1006 | setnz [dma_hdd] |
1001 | setnz [dma_hdd] |
Line 1007... | Line 1002... | ||
1007 | mov [timer_ticks_enable],1 ; for cd driver |
1002 | mov [timer_ticks_enable],1 ; for cd driver |
Line 1140... | Line 1135... | ||
1140 | process_number dd 0x1 |
1135 | process_number dd 0x1 |
1141 | endg |
1136 | endg |
Line 1142... | Line 1137... | ||
1142 | 1137 | ||
Line 1143... | Line 1138... | ||
1143 | set_variables: |
1138 | set_variables: |
- | 1139 | ||
1144 | 1140 | mov ecx,0x16 ; flush port 0x60 |
|
1145 | mov ecx,0x100 ; flush port 0x60 |
1141 | .fl60: |
1146 | .fl60: in al,0x60 |
1142 | in al,0x60 |
Line 1147... | Line 1143... | ||
1147 | loop .fl60 |
1143 | loop .fl60 |
1148 | push eax |
1144 | push eax |