source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19hMenu.asm@ 95

Last change on this file since 95 was 95, checked in by Tomi Tilli, 14 years ago

Changes to XTIDE Universal BIOS:

  • Smaller boot sector loading string.
  • Cleaned boot code a bit.
File size: 2.3 KB
Line 
1; Project name : XTIDE Universal BIOS
2; Description : Int 19h BIOS functions for Boot Menu.
3
4; Section containing code
5SECTION .text
6
7;--------------------------------------------------------------------
8; Initial Boot Menu Loader.
9; Prepares BOOTVARS for displaying Boot Menu and accepting
10; callbacks from INT 18h and 19h.
11;
12; Int19hMenu_BootLoader
13; Parameters:
14; Nothing
15; Returns:
16; Jumps to Int19hMenu_Display, then never returns
17;--------------------------------------------------------------------
18ALIGN JUMP_ALIGN
19Int19hMenu_BootLoader:
20 LOAD_BDA_SEGMENT_TO ds, ax
21 call BootVars_StorePostStackPointer
22
23 ; Install new INT 19h handler now that BOOTVARS has been initialized
24 mov WORD [INTV_BOOTSTRAP*4], Int19hMenu_Display
25 mov WORD [INTV_BOOTSTRAP*4+2], cs
26 ; Fall to Int19hMenu_Display
27
28;--------------------------------------------------------------------
29; Displays Boot Menu so user can select drive to boot from.
30;
31; Int19hMenu_Display
32; Parameters:
33; Nothing
34; Returns:
35; Never returns
36;--------------------------------------------------------------------
37ALIGN JUMP_ALIGN
38Int19hMenu_Display:
39 sti ; Enable interrupts
40 call BootVars_SwitchToBootMenuStack
41 call RamVars_GetSegmentToDS
42 ; Fall to Int19hMenu_ProcessMenuSelectionsUntilBootable
43
44;--------------------------------------------------------------------
45; Processes user menu selections until bootable drive is selected.
46;
47; Int19hMenu_ProcessMenuSelectionsUntilBootable
48; Parameters:
49; DS: RAMVARS segment
50; Returns:
51; Never returns
52;--------------------------------------------------------------------
53ALIGN JUMP_ALIGN
54Int19hMenu_ProcessMenuSelectionsUntilBootable:
55 call BootMenu_DisplayAndReturnSelection
56 call DriveXlate_ToOrBack ; Translate drive number
57 call Int19h_TryToLoadBootSectorFromDL
58 jnc SHORT Int19hMenu_ProcessMenuSelectionsUntilBootable ; Boot failure, show menu again
59 call BootVars_SwitchBackToPostStack
60 jmp Int19h_JumpToBootSector
61
62
63;--------------------------------------------------------------------
64; Int19hMenu_RomBoot
65; Parameters:
66; DS: RAMVARS segment
67; Returns:
68; Never returns
69;--------------------------------------------------------------------
70ALIGN JUMP_ALIGN
71Int19hMenu_RomBoot:
72 call BootVars_SwitchBackToPostStack
73 call Int19h_ClearSegmentsForBoot
74 int INTV_BOOT_FAILURE ; Never returns
Note: See TracBrowser for help on using the repository browser.