Changeset 128 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenu.asm
- Timestamp:
- Mar 4, 2011, 1:47:17 PM (14 years ago)
- google:author:
- krille_n_@hotmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenu.asm
r127 r128 24 24 cmp cx, BYTE NO_ITEM_SELECTED 25 25 je SHORT BootMenu_DisplayAndReturnSelection ; Clear screen and display menu 26 jmp SHORT BootMenu_ConvertMenuitemFromCXtoDriveInDX 26 ; Fall through to BootMenu_ConvertMenuitemFromCXtoDriveInDX 27 28 ;-------------------------------------------------------------------- 29 ; BootMenu_ConvertMenuitemFromCXtoDriveInDX 30 ; Parameters: 31 ; CX: Index of menuitem selected from Boot Menu 32 ; DS: RAMVARS segment 33 ; Returns: 34 ; DX: Drive number to be used for booting 35 ; Corrupts registers: 36 ; CX 37 ;-------------------------------------------------------------------- 38 ALIGN JUMP_ALIGN 39 BootMenu_ConvertMenuitemFromCXtoDriveInDX: 40 mov dx, cx ; Copy menuitem index to DX 41 call FloppyDrive_GetCountToCX 42 cmp dx, cx ; Floppy drive? 43 jb SHORT .ReturnFloppyDriveInDX 44 sub dx, cx ; Remove floppy drives from index 45 or dl, 80h 46 .ReturnFloppyDriveInDX: 47 ret 27 48 28 49 … … 77 98 ALIGN JUMP_ALIGN 78 99 BootMenu_GetHeightToAHwithItemCountInAL: 100 add al, BOOT_MENU_HEIGHT_WITHOUT_ITEMS 79 101 xchg cx, ax 80 add cl, BOOT_MENU_HEIGHT_WITHOUT_ITEMS81 102 CALL_DISPLAY_LIBRARY GetColumnsToALandRowsToAH 82 103 sub ah, MENU_SCREEN_BOTTOM_LINES*2 ; Leave space for bottom info … … 109 130 ret 110 131 132 111 133 ;-------------------------------------------------------------------- 112 134 ; Returns letter for first hard disk. Usually it will be 'c' but it … … 130 152 131 153 ;-------------------------------------------------------------------- 132 ; BootMenu_ConvertMenuitemFromCXtoDriveInDX133 ; Parameters:134 ; CX: Index of menuitem selected from Boot Menu135 ; DS: RAMVARS segment136 ; Returns:137 ; DX: Drive number to be used for booting138 ; Corrupts registers:139 ; CX140 ;--------------------------------------------------------------------141 ALIGN JUMP_ALIGN142 BootMenu_ConvertMenuitemFromCXtoDriveInDX:143 mov dx, cx ; Copy menuitem index to DX144 call FloppyDrive_GetCountToCX145 cmp dx, cx ; Floppy drive?146 jb SHORT .ReturnFloppyDriveInDX147 sub dx, cx ; Remove floppy drives from index148 or dl, 80h149 .ReturnFloppyDriveInDX:150 ret151 152 153 ;--------------------------------------------------------------------154 154 ; BootMenu_GetMenuitemToDXforDriveInDL 155 155 ; Parameters: … … 163 163 BootMenu_GetMenuitemToDXforDriveInDL: 164 164 xor dh, dh ; Drive number now in DX 165 test dl, 80h166 j zSHORT .ReturnItemIndexInDX ; Return if floppy drive (HD bit not set)165 test dl, dl 166 jns SHORT .ReturnItemIndexInDX ; Return if floppy drive (HD bit not set) 167 167 call FloppyDrive_GetCountToCX 168 168 and dl, ~80h ; Clear HD bit … … 187 187 ALIGN JUMP_ALIGN 188 188 BootMenu_IsDriveInSystem: 189 test dl, 80h; Floppy drive?190 j zSHORT .IsFloppyDriveIsInSystem189 test dl, dl ; Floppy drive? 190 jns SHORT .IsFloppyDriveIsInSystem 191 191 call RamVars_GetHardDiskCountFromBDAtoCX ; Hard Disk count to CX 192 192 or cl, 80h ; Set Hard Disk bit to CX
Note:
See TracChangeset
for help on using the changeset viewer.