Changeset 128 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Boot
- Timestamp:
- Mar 4, 2011, 1:47:17 PM (14 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk/XTIDE_Universal_BIOS/Src/Boot
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Boot/BootInfo.asm
r121 r128 73 73 stosw 74 74 loop .CopyNextWord 75 xor ax, ax 75 xor ax, ax ; Zero AX and clear CF 76 76 stosb ; Terminate with NULL 77 77 … … 79 79 pop si 80 80 pop ds 81 clc82 81 ret 83 82 … … 94 93 ; Corrupts registers: 95 94 ; Nothing 96 ;-------------------------------------------------------------------- 95 ;-------------------------------------------------------------------- 97 96 ALIGN JUMP_ALIGN 98 97 BootInfo_GetTotalSectorCount: -
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 -
trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuEvent.asm
r127 r128 157 157 call RamVars_GetSegmentToDS 158 158 call BootMenu_ConvertMenuitemFromCXtoDriveInDX 159 test dl, 80h; Floppy drive?160 j zSHORT .DrawFloppyDrive159 test dl, dl ; Floppy drive? 160 jns SHORT .DrawFloppyDrive 161 161 jmp [cs:bx+ITEM_TYPE_REFRESH.HardDisk] 162 162 ALIGN JUMP_ALIGN -
trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrint.asm
r127 r128 22 22 CALL_DISPLAY_LIBRARY PrintNewlineCharacters 23 23 mov si, ROMVARS.szVersion 24 jmp BootMenuPrint_NullTerminatedStringFromCSSIandSetCF 24 ; Fall through to BootMenuPrint_NullTerminatedStringFromCSSIandSetCF 25 26 27 ;-------------------------------------------------------------------- 28 ; BootMenuPrint_NullTerminatedStringFromCSSIandSetCF 29 ; Parameters: 30 ; CS:SI: Ptr to NULL terminated string to print 31 ; Returns: 32 ; CF: Set since menu event was handled successfully 33 ; Corrupts registers: 34 ; AX 35 ;-------------------------------------------------------------------- 36 ALIGN JUMP_ALIGN 37 BootMenuPrint_NullTerminatedStringFromCSSIandSetCF: 38 push di 39 CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI 40 pop di 41 stc 42 ret 25 43 26 44 … … 53 71 BootMenuPrint_FloppyMenuitem: 54 72 push bp 55 56 73 mov bp, sp 57 74 mov si, g_szFDLetter … … 109 126 .HardDiskMenuitemForForeignDrive: 110 127 mov si, g_szforeignHD 111 jmp BootMenuPrint_NullTerminatedStringFromCSSIandSetCF128 jmp SHORT BootMenuPrint_NullTerminatedStringFromCSSIandSetCF 112 129 113 130 … … 177 194 .PrintKnownFloppyType: 178 195 push bp 179 180 196 mov bp, sp 181 197 mov si, g_szFddSize … … 320 336 321 337 ;-------------------------------------------------------------------- 322 ; BootMenuPrint_NullTerminatedStringFromCSSIandSetCF323 ; Parameters:324 ; CS:SI: Ptr to NULL terminated string to print325 ; Returns:326 ; CF: Set since menu event was handled successfully327 ; Corrupts registers:328 ; AX329 ;--------------------------------------------------------------------330 ALIGN JUMP_ALIGN331 BootMenuPrint_NullTerminatedStringFromCSSIandSetCF:332 push di333 CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI334 pop di335 stc336 ret337 338 339 ;--------------------------------------------------------------------340 338 ; BootMenuPrint_ClearInformationArea 341 339 ; Parameters: -
trunk/XTIDE_Universal_BIOS/Src/Boot/BootPrint.asm
r120 r128 21 21 22 22 mov ax, g_szHDD 23 test dl, 80h 24 eCMOVZ ax, g_szFDD 23 test dl, dl 24 js SHORT .NotFDD 25 mov ax, g_szFDD 26 .NotFDD: 25 27 push ax 26 28 -
trunk/XTIDE_Universal_BIOS/Src/Boot/BootSector.asm
r96 r128 23 23 jc SHORT .FailedToLoadFirstSector 24 24 25 test dl, 80h26 j zSHORT .AlwaysBootFromFloppyDriveForBooterGames25 test dl, dl 26 jns SHORT .AlwaysBootFromFloppyDriveForBooterGames 27 27 cmp WORD [es:bx+510], 0AA55h ; Valid boot sector? 28 28 jne SHORT .FirstHardDiskSectorNotBootable … … 84 84 .ResetBootDriveFromDL: 85 85 xor ax, ax ; AH=0h, Disk Controller Reset 86 test dl, 80h ; Floppy drive? 87 eCMOVNZ ah, 0Dh ; AH=Dh, Reset Hard Disk (Alternate reset) 86 test dl, dl ; Floppy drive? 87 jns SHORT .SkipAltReset 88 mov ah, 0Dh ; AH=Dh, Reset Hard Disk (Alternate reset) 89 .SkipAltReset: 88 90 int INTV_DISK_FUNC 89 91 ret
Note:
See TracChangeset
for help on using the changeset viewer.