Rev 3774 | Rev 3796 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3774 | Rev 3777 | ||
---|---|---|---|
Line 9... | Line 9... | ||
9 | ;; KolibriOS 16-bit loader, ;; |
9 | ;; KolibriOS 16-bit loader, ;; |
10 | ;; based on bootcode for MenuetOS ;; |
10 | ;; based on bootcode for MenuetOS ;; |
11 | ;; ;; |
11 | ;; ;; |
12 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
12 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 13... | Line 13... | ||
13 | 13 | ||
Line 14... | Line 14... | ||
14 | $Revision: 3774 $ |
14 | $Revision: 3777 $ |
15 | 15 | ||
16 | 16 | ||
Line 594... | Line 594... | ||
594 | ; \begin{diamond}[30.11.2005] |
594 | ; \begin{diamond}[30.11.2005] |
595 | cfgmanager: |
595 | cfgmanager: |
596 | ; settings: |
596 | ; settings: |
597 | ; a) preboot_graph = graphical mode |
597 | ; a) preboot_graph = graphical mode |
598 | ; preboot_gprobe = probe this mode? |
598 | ; preboot_gprobe = probe this mode? |
599 | ; b) preboot_dma = use DMA access? |
599 | ; b) preboot_biosdisk = use BIOS disks through V86 emulation? // (earlier was: preboot_dma = use DMA access?) |
600 | ; c) preboot_vrrm = use VRR? |
600 | ; c) preboot_debug = duplicates kernel debug output to the screen // (earlier was: preboot_vrrm = use VRR?) |
- | 601 | ; // VRR is an obsolete functionality, used only with CRT monitors: increase display frequency by reducing screen resolution |
|
- | 602 | ; d) preboot_launcher = start the first app (right now it's LAUNCHER) after kernel is loaded? |
|
601 | ; d) preboot_device = from what boot? |
603 | ; e) preboot_device = from where to boot? |
Line 602... | Line 604... | ||
602 | 604 | ||
603 | ; determine default settings |
605 | ; determine default settings |
604 | if ~ defined extended_primary_loader |
606 | if ~ defined extended_primary_loader |
605 | mov [.bSettingsChanged], 0 |
607 | mov [.bSettingsChanged], 0 |
Line 630... | Line 632... | ||
630 | end if |
632 | end if |
631 | .preboot_device_inited: |
633 | .preboot_device_inited: |
632 | ; following 4 lines set variables to 1 if its current value is 0 |
634 | ; following 4 lines set variables to 1 if its current value is 0 |
633 | cmp byte [di+preboot_dma-preboot_device], 1 |
635 | cmp byte [di+preboot_dma-preboot_device], 1 |
634 | adc byte [di+preboot_dma-preboot_device], 0 |
636 | adc byte [di+preboot_dma-preboot_device], 0 |
- | 637 | cmp byte [di+preboot_launcher-preboot_device], 1 ; Start LAUNCHER by default |
|
- | 638 | adc byte [di+preboot_launcher-preboot_device], 0 |
|
635 | ; cmp byte [di+preboot_biosdisk-preboot_device], 1 |
639 | ; cmp byte [di+preboot_biosdisk-preboot_device], 1 |
636 | ; adc byte [di+preboot_biosdisk-preboot_device], 0 |
640 | ; adc byte [di+preboot_biosdisk-preboot_device], 0 |
637 | ;; default value for VRR is OFF |
641 | ;; default value for VRR is OFF |
638 | ; cmp byte [di+preboot_vrrm-preboot_device], 0 |
642 | ; cmp byte [di+preboot_vrrm-preboot_device], 0 |
639 | ; jnz @f |
643 | ; jnz @f |
Line 667... | Line 671... | ||
667 | cmp [preboot_biosdisk], 1 |
671 | cmp [preboot_biosdisk], 1 |
668 | call .say_on_off |
672 | call .say_on_off |
669 | ; mov si, vrrm_msg |
673 | ; mov si, vrrm_msg |
670 | ; cmp [preboot_vrrm], 1 |
674 | ; cmp [preboot_vrrm], 1 |
671 | ; call .say_on_off |
675 | ; call .say_on_off |
- | 676 | mov si, debug_mode_msg |
|
- | 677 | cmp [preboot_debug], 1 |
|
- | 678 | call .say_on_off |
|
- | 679 | mov si, launcher_msg |
|
- | 680 | cmp [preboot_launcher], 1 |
|
- | 681 | call .say_on_off |
|
672 | mov si, preboot_device_msg |
682 | mov si, preboot_device_msg |
673 | call print |
683 | call print |
674 | mov al, [preboot_device] |
684 | mov al, [preboot_device] |
675 | if defined extended_primary_loader |
685 | if defined extended_primary_loader |
676 | and eax, 3 |
686 | and eax, 3 |
Line 750... | Line 760... | ||
750 | pop ax |
760 | pop ax |
751 | ; switch on key |
761 | ; switch on key |
752 | cmp al, 13 |
762 | cmp al, 13 |
753 | jz .continue |
763 | jz .continue |
754 | or al, 20h |
764 | or al, 20h |
755 | cmp al, 'a' |
765 | cmp al, 'a' ; select graphical mode |
756 | jz .change_a |
766 | jz .change_a |
757 | cmp al, 'q' ; Trick to make 'A' key on azerty keyboard work |
767 | cmp al, 'q' ; Trick to make 'A' key on azerty keyboard work |
758 | je .change_a |
768 | je .change_a |
759 | cmp al, 'b' |
769 | cmp al, 'b' ; use BIOS disks? // (selecting YES will make BIOS disks visible as /bd) |
760 | jz .change_b |
770 | jz .change_b |
- | 771 | cmp al, 'c' ; load kernel in debug mode? // (earlier was: use VRR?) |
|
761 | ; cmp al, 'c' |
772 | jz .change_c |
- | 773 | cmp al, 'd' ; start launcher after kernel is loaded? |
|
762 | ; jz .change_c |
774 | jz .change_d |
763 | cmp al, 'c' ; 'd' |
775 | cmp al, 'e' ; select boot origin |
764 | jnz .show_remarks |
776 | jnz .show_remarks |
- | 777 | ; e) preboot_device = from where to boot? |
|
765 | _setcursor 15,0 |
778 | _setcursor 16,0 |
766 | mov si, bdev |
779 | mov si, bdev |
767 | call print |
780 | call print |
768 | if defined extended_primary_loader |
781 | if defined extended_primary_loader |
769 | mov bx, '12' |
782 | mov bx, '12' |
770 | else |
783 | else |
771 | mov bx, '14' |
784 | mov bx, '14' |
772 | end if |
785 | end if |
773 | call getkey |
786 | call getkey |
774 | mov [preboot_device], al |
787 | mov [preboot_device], al |
775 | _setcursor 13,0 |
788 | _setcursor 14,0 |
776 | .d: |
789 | .d: |
777 | if ~ defined extended_primary_loader |
790 | if ~ defined extended_primary_loader |
778 | mov [.bSettingsChanged], 1 |
791 | mov [.bSettingsChanged], 1 |
779 | end if |
792 | end if |
780 | call clear_vmodes_table ;clear vmodes_table |
793 | call clear_vmodes_table ;clear vmodes_table |
Line 856... | Line 869... | ||
856 | pop word [number_vm] |
869 | pop word [number_vm] |
857 | mov word [preboot_graph], bp ;save choose |
870 | mov word [preboot_graph], bp ;save choose |
Line 858... | Line 871... | ||
858 | 871 | ||
Line 859... | Line 872... | ||
859 | jmp .d |
872 | jmp .d |
860 | 873 | ||
861 | .change_b: |
874 | .change_b: ; b) preboot_biosdisk = use BIOS disks through V86 emulation? |
862 | _setcursor 15,0 |
875 | _setcursor 16,0 |
863 | ; mov si, ask_dma |
876 | ; mov si, ask_dma // (earlier was: preboot_dma = use DMA access?) |
864 | ; call print |
877 | ; call print |
865 | ; mov bx, '13' |
878 | ; mov bx, '13' |
866 | ; call getkey |
879 | ; call getkey |
Line 870... | Line 883... | ||
870 | mov bx, '12' |
883 | mov bx, '12' |
871 | call getkey |
884 | call getkey |
872 | mov [preboot_biosdisk], al |
885 | mov [preboot_biosdisk], al |
873 | _setcursor 11,0 |
886 | _setcursor 11,0 |
874 | jmp .d |
887 | jmp .d |
875 | ;.change_c: |
888 | ;.change_c: ; // VRR is an obsolete functionality, used only with CRT monitors |
876 | ; _setcursor 15,0 |
889 | ; _setcursor 16,0 |
877 | ; mov si, vrrmprint |
890 | ; mov si, vrrmprint |
878 | ; call print |
891 | ; call print |
879 | ; mov bx, '12' |
892 | ; mov bx, '12' |
880 | ; call getkey |
893 | ; call getkey |
881 | ; mov [preboot_vrrm], al |
894 | ; mov [preboot_vrrm], al |
882 | ; _setcursor 12,0 |
895 | ; _setcursor 12,0 |
883 | ; jmp .d |
896 | ; jmp .d |
- | 897 | .change_c: ; c) preboot_debug = duplicates kernel debug output to the screen |
|
- | 898 | _setcursor 16,0 |
|
- | 899 | mov si, ask_debug |
|
- | 900 | call print |
|
- | 901 | mov bx, '12' |
|
- | 902 | call getkey |
|
- | 903 | mov [preboot_debug], al |
|
- | 904 | _setcursor 12,0 |
|
- | 905 | jmp .d |
|
- | 906 | .change_d: ; d) preboot_launcher = start the first app (right now it's LAUNCHER) after kernel is loaded? |
|
- | 907 | _setcursor 16,0 |
|
- | 908 | mov si, ask_launcher |
|
- | 909 | call print |
|
- | 910 | mov bx, '12' |
|
- | 911 | call getkey |
|
- | 912 | mov [preboot_launcher], al |
|
- | 913 | _setcursor 13,0 |
|
- | 914 | jmp .d |
|
884 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
915 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
885 | .say_on_off: |
916 | .say_on_off: |
886 | pushf |
917 | pushf |
887 | call print |
918 | call print |
888 | mov si, on_msg |
919 | mov si, on_msg |
Line 986... | Line 1017... | ||
986 | call printplain |
1017 | call printplain |
987 | call printplain |
1018 | call printplain |
988 | _setcursor 6,0 |
1019 | _setcursor 6,0 |
989 | mov si, loading_msg |
1020 | mov si, loading_msg |
990 | call print |
1021 | call print |
991 | _setcursor 15,0 |
1022 | _setcursor 16,0 |
992 | if ~ defined extended_primary_loader |
1023 | if ~ defined extended_primary_loader |
993 | cmp [.bSettingsChanged], 0 |
1024 | cmp [.bSettingsChanged], 0 |
994 | jz .load |
1025 | jz .load |
995 | cmp [.loader_block], -1 |
1026 | cmp [.loader_block], -1 |
996 | jz .load |
1027 | jz .load |
Line 1028... | Line 1059... | ||
1028 | .cont: |
1059 | .cont: |
1029 | push cs |
1060 | push cs |
1030 | pop ds |
1061 | pop ds |
1031 | mov si, space_msg |
1062 | mov si, space_msg |
1032 | mov byte [si+80], 0 |
1063 | mov byte [si+80], 0 |
1033 | _setcursor 15,0 |
1064 | _setcursor 16,0 |
1034 | call printplain |
1065 | call printplain |
1035 | _setcursor 15,0 |
1066 | _setcursor 16,0 |
1036 | .load: |
1067 | .load: |
1037 | end if |
1068 | end if |
1038 | ; \end{diamond}[02.12.2005] |
1069 | ; \end{diamond}[02.12.2005] |
Line 1039... | Line 1070... | ||
1039 | 1070 | ||
Line 1051... | Line 1082... | ||
1051 | mov [es:BOOT_DMA], al |
1082 | mov [es:BOOT_DMA], al |
Line 1052... | Line 1083... | ||
1052 | 1083 | ||
1053 | ;; VRR_M USE |
1084 | ;; VRR_M USE |
1054 | ; |
1085 | ; |
- | 1086 | ; mov al,[preboot_vrrm] |
|
- | 1087 | ; mov [es:BOOT_VRR], al ;// 0x9030 |
|
- | 1088 | ||
1055 | ; mov al,[preboot_vrrm] |
1089 | ; Set kernel DEBUG mode - if nonzero, duplicates debug output to the screen. |
- | 1090 | mov al, [preboot_debug] |
|
- | 1091 | mov [es:BOOT_DEBUG_PRINT], al ;// 0x901E |
|
- | 1092 | ||
- | 1093 | ; Start the first app (right now it's LAUNCHER) after kernel is loaded? |
|
- | 1094 | mov al, [preboot_launcher] |
|
Line 1056... | Line 1095... | ||
1056 | ; mov [es:0x9030], al |
1095 | mov [es:BOOT_LAUNCHER_START], al ;// 0x901D |
Line 1057... | Line 1096... | ||
1057 | 1096 | ||
1058 | ; BOOT DEVICE |
1097 | ; BOOT DEVICE |