Changeset 96 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers
- Timestamp:
- Jan 28, 2011, 4:29:42 PM (14 years ago)
- google:author:
- aitotat
- Location:
- trunk/XTIDE_Universal_BIOS/Src/Handlers
- Files:
-
- 1 deleted
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19hMenu.asm
r95 r96 22 22 23 23 ; Install new INT 19h handler now that BOOTVARS has been initialized 24 mov WORD [INTV_BOOTSTRAP*4], Int19hMenu_Display24 mov WORD [INTV_BOOTSTRAP*4], DisplayBootMenu 25 25 mov WORD [INTV_BOOTSTRAP*4+2], cs 26 ; Fall to Int19hMenu_Display26 ; Fall to DisplayBootMenu 27 27 28 28 ;-------------------------------------------------------------------- 29 ; Displays Boot Menu so user can select drive to boot from. 30 ; 31 ; Int19hMenu_Display 29 ; DisplayBootMenu 32 30 ; Parameters: 33 31 ; Nothing … … 36 34 ;-------------------------------------------------------------------- 37 35 ALIGN JUMP_ALIGN 38 Int19hMenu_Display: 39 sti ; Enable interrupts 36 DisplayBootMenu: 40 37 call BootVars_SwitchToBootMenuStack 41 38 call RamVars_GetSegmentToDS 42 ; Fall to Int19hMenu_ProcessMenuSelectionsUntilBootable39 ; Fall to .ProcessMenuSelectionsUntilBootable 43 40 44 41 ;-------------------------------------------------------------------- 45 ; Processes user menu selections until bootable drive is selected. 46 ; 47 ; Int19hMenu_ProcessMenuSelectionsUntilBootable 42 ; .ProcessMenuSelectionsUntilBootable 48 43 ; Parameters: 49 44 ; DS: RAMVARS segment … … 52 47 ;-------------------------------------------------------------------- 53 48 ALIGN JUMP_ALIGN 54 Int19hMenu_ProcessMenuSelectionsUntilBootable:49 .ProcessMenuSelectionsUntilBootable: 55 50 call BootMenu_DisplayAndReturnSelection 56 51 call DriveXlate_ToOrBack ; Translate drive number 57 call Int19h_TryToLoadBootSectorFromDL58 jnc SHORT Int19hMenu_ProcessMenuSelectionsUntilBootable ; Boot failure, show menu again52 call BootSector_TryToLoadFromDriveDL 53 jnc SHORT .ProcessMenuSelectionsUntilBootable ; Boot failure, show menu again 59 54 call BootVars_SwitchBackToPostStack 60 jmp Int19h_JumpToBootSector 55 ; Fall to JumpToBootSector 56 57 ;-------------------------------------------------------------------- 58 ; JumpToBootSector 59 ; Parameters: 60 ; DL: Drive to boot from (translated, 00h or 80h) 61 ; ES:BX: Ptr to boot sector 62 ; Returns: 63 ; Never returns 64 ;-------------------------------------------------------------------- 65 ALIGN JUMP_ALIGN 66 JumpToBootSector: 67 push es ; Push boot sector segment 68 push bx ; Push boot sector offset 69 call ClearSegmentsForBoot 70 xor dh, dh ; Device supported by INT 13h 71 retf 61 72 62 73 … … 71 82 Int19hMenu_RomBoot: 72 83 call BootVars_SwitchBackToPostStack 73 call Int19h_ClearSegmentsForBoot84 call ClearSegmentsForBoot 74 85 int INTV_BOOT_FAILURE ; Never returns 86 87 88 ;-------------------------------------------------------------------- 89 ; ClearSegmentsForBoot 90 ; Parameters: 91 ; Nothing 92 ; Returns: 93 ; DS=ES: Zero 94 ; Corrupts registers: 95 ; AX 96 ;-------------------------------------------------------------------- 97 ALIGN JUMP_ALIGN 98 ClearSegmentsForBoot: 99 xor ax, ax 100 mov ds, ax 101 mov es, ax 102 ret
Note:
See TracChangeset
for help on using the changeset viewer.