Changeset 84 in xtideuniversalbios
- Timestamp:
- Jan 14, 2011, 10:57:46 PM (14 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk/XTIDE_Universal_BIOS/Src
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenu.asm
r32 r84 2 2 ; Project name : IDE BIOS 3 3 ; Created date : 25.3.2010 4 ; Last update : 3.8.2010 5 ; Author : Tomi Tilli 4 ; Last update : 14.1.2011 5 ; Author : Tomi Tilli, 6 ; : Krister Nordvall (optimizations) 6 7 ; Description : Displays Boot Menu. 7 8 … … 31 32 call BootMenu_Enter ; Get selected menuitem index to CX 32 33 call BootMenuPrint_ClearScreen 33 cmp cx, BYTE 0; -1 if nothing selected (ESC pressed)34 j lSHORT BootMenu_DisplayAndReturnSelection34 test cx, cx ; -1 if nothing selected (ESC pressed) 35 js SHORT BootMenu_DisplayAndReturnSelection 35 36 call BootMenu_CheckAndConvertHotkeyToMenuitem 36 37 jc SHORT .SetDriveTranslationForHotkey -
trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrint.asm
r32 r84 2 2 ; Project name : IDE BIOS 3 3 ; Created date : 26.3.2010 4 ; Last update : 3.8.2010 5 ; Author : Tomi Tilli 4 ; Last update : 14.1.2011 5 ; Author : Tomi Tilli, 6 ; : Krister Nordvall (optimizations) 6 7 ; Description : Functions for printing boot menu strings. 7 8 … … 43 44 ; DH: Cursor Y coordinate 44 45 ; Corrupts registers: 45 ; AX46 ; Nothing 46 47 ;-------------------------------------------------------------------- 47 48 ALIGN JUMP_ALIGN 48 49 BootMenuPrint_GetCoordinatesForBottomStrings: 49 50 mov dx, 1800h ; (0, 24) 50 xor ax, ax ; Zero AX 51 sub al, bl ; Set CF if any floppy drives 52 sbb dh, 0 ; Decrement Y-coordinate if necessary 53 sub ah, bh ; Set CF if any hard disks 54 sbb dh, 0 ; Decrement Y-coordinate if necessary 51 cmp dl, bl ; Set CF if any floppy drives 52 sbb dh, dl ; Decrement Y-coordinate if necessary 53 cmp dl, bh ; Set CF if any hard disks 54 sbb dh, dl ; Decrement Y-coordinate if necessary 55 55 ret 56 56 -
trunk/XTIDE_Universal_BIOS/Src/Boot/BootVars.asm
r3 r84 2 2 ; Project name : IDE BIOS 3 3 ; Created date : 1.4.2010 4 ; Last update : 12.4.2010 5 ; Author : Tomi Tilli 4 ; Last update : 14.1.2011 5 ; Author : Tomi Tilli, 6 ; : Krister Nordvall (optimizations) 6 7 ; Description : Functions to access BOOTVARS struct. 7 8 … … 66 67 cli ; Disable interrupts 67 68 LOAD_BDA_SEGMENT_TO ss, sp 68 eLSS sp, ss:BOOTVARS.dwPostStack 69 ; eLSS sp, ss:BOOTVARS.dwPostStack ; Expanded macro to remove 70 ; unneeded CLI instruction 71 %ifndef USE_386 72 mov sp, [ss:BOOTVARS.dwPostStack] 73 mov ss, [ss:BOOTVARS.dwPostStack+2] 74 %else 75 lss sp, [ss:BOOTVARS.dwPostStack] 76 %endif 69 77 sti ; Enable interrupts 70 78 jmp ax -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm
r43 r84 2 2 ; Project name : IDE BIOS 3 3 ; Created date : 21.9.2007 4 ; Last update : 24.8.2010 5 ; Author : Tomi Tilli 4 ; Last update : 14.1.2011 5 ; Author : Tomi Tilli, 6 ; : Krister Nordvall (optimizations) 6 7 ; Description : Int 13h BIOS functions (Floppy and Hard disk). 7 8 … … 63 64 ja SHORT Int13h_UnsupportedFunction 64 65 mov di, ax 66 %ifndef USE_186 ; This uses 9 bytes less and is about 5 cycles faster 67 mov al, ah ; Copy bits in AH to AL and then 68 shl al, 1 ; shift them "back" 1 step 69 and al, 7Eh ; AND them (clears the MSB) 70 cbw ; Clear AH using sign extension 71 xchg di, ax ; and finally swap DI with AX 72 %else 65 73 eSHR_IM di, 7 ; Shift function to DI... 66 74 and di, BYTE 7Eh ; ...and prepare for word lookup 75 %endif 67 76 jmp [cs:di+g_rgw13hFuncJump] ; Jump to BIOS function 68 77 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.asm
r35 r84 2 2 ; Project name : IDE BIOS 3 3 ; Created date : 27.9.2007 4 ; Last update : 24.8.2010 5 ; Author : Tomi Tilli 4 ; Last update : 13.1.2011 5 ; Author : Tomi Tilli, 6 ; : Krister Nordvall (optimizations) 6 7 ; Description : Int 13h function AH=0h, Disk Controller Reset. 7 8 … … 98 99 mov dl, bl 99 100 call RamVars_IsDriveHandledByThisBIOS 100 j c SHORT .GetFirstDriveForForeignBios101 ret ; Return what was in BL unmodified101 jnc SHORT .Return ; Return what was in BL unmodified 102 mov dl, 80h 102 103 ALIGN JUMP_ALIGN 103 .GetFirstDriveForForeignBios: 104 mov dl, 80h 104 .Return: 105 105 ret 106 106 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH11h_HRecal.asm
r28 r84 2 2 ; Project name : IDE BIOS 3 3 ; Created date : 28.9.2007 4 ; Last update : 29.7.2010 5 ; Author : Tomi Tilli 4 ; Last update : 14.1.2011 5 ; Author : Tomi Tilli, 6 ; : Krister Nordvall (optimizations) 6 7 ; Description : Int 13h function AH=11h, Recalibrate. 7 8 … … 31 32 push bx 32 33 push ax 34 %ifndef USE_186 33 35 call AH11h_RecalibrateDrive 34 36 jmp Int13h_PopXRegsAndReturn 37 %else 38 push Int13h_PopXRegsAndReturn 39 ; Fall through to AH11h_RecalibrateDrive 40 %endif 35 41 36 42 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH14h_HDiag.asm
r35 r84 2 2 ; Project name : IDE BIOS 3 3 ; Created date : 28.9.2007 4 ; Last update : 24.8.2010 5 ; Author : Tomi Tilli 4 ; Last update : 14.1.2011 5 ; Author : Tomi Tilli, 6 ; : Krister Nordvall (optimizations) 6 7 ; Description : Int 13h function AH=14h, Controller Internal Diagnostic. 7 8 … … 31 32 mov al, [di+DPT.bReset] ; Load reset byte to AL 32 33 test al, al ; Any error? 33 jnz SHORT .ReturnError 34 mov ah, RET_HD_RESETFAIL ; Assume there was an error 35 stc 36 jnz SHORT .Return 34 37 xor ah, ah ; Zero AH and CF since success 38 .Return: 35 39 jmp Int13h_PopDiDsAndReturn 36 .ReturnError:37 mov ah, RET_HD_RESETFAIL38 stc39 jmp Int13h_PopDiDsAndReturn -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH24h_HSetBlocks.asm
r3 r84 2 2 ; Project name : IDE BIOS 3 3 ; Created date : 28.12.2009 4 ; Last update : 12.4.2010 5 ; Author : Tomi Tilli 4 ; Last update : 14.1.2011 5 ; Author : Tomi Tilli, 6 ; : Krister Nordvall (optimizations) 6 7 ; Description : Int 13h function AH=24h, Set Multiple Blocks. 7 8 … … 32 33 push bx 33 34 push ax 35 %ifndef USE_186 34 36 call AH24h_SetBlockSize 35 37 jmp Int13h_PopXRegsAndReturn 38 %else 39 push Int13h_PopXRegsAndReturn 40 ; Fall through to AH24h_SetBlockSize 41 %endif 36 42 37 43 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH4h_HVerify.asm
r3 r84 2 2 ; Project name : IDE BIOS 3 3 ; Created date : 13.10.2007 4 ; Last update : 13.4.2010 5 ; Author : Tomi Tilli 4 ; Last update : 14.1.2011 5 ; Author : Tomi Tilli, 6 ; : Krister Nordvall (optimizations) 6 7 ; Description : Int 13h function AH=4h, Verify Disk Sectors. 7 8 … … 39 40 push bx 40 41 push ax 42 %ifndef USE_186 41 43 call AH4h_VerifySectors 42 44 jmp Int13h_PopXRegsAndReturn 45 %else 46 push Int13h_PopXRegsAndReturn 47 ; Fall through to AH4h_VerifySectors 48 %endif 43 49 44 50 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH9h_HInit.asm
r35 r84 2 2 ; Project name : IDE BIOS 3 3 ; Created date : 9.12.2007 4 ; Last update : 1.8.2010 5 ; Author : Tomi Tilli 4 ; Last update : 14.1.2011 5 ; Author : Tomi Tilli, 6 ; : Krister Nordvall (optimizations) 6 7 ; Description : Int 13h function AH=9h, Initialize Drive Parameters. 7 8 … … 31 32 push bx 32 33 push ax 34 %ifndef USE_186 33 35 call AH9h_InitializeDriveForUse 34 36 jmp Int13h_PopXRegsAndReturn 37 %else 38 push Int13h_PopXRegsAndReturn 39 ; Fall through to AH9h_InitializeDriveForUse 40 %endif 35 41 36 42 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AHCh_HSeek.asm
r3 r84 2 2 ; Project name : IDE BIOS 3 3 ; Created date : 13.12.2007 4 ; Last update : 12.4.2010 5 ; Author : Tomi Tilli 4 ; Last update : 14.1.2011 5 ; Author : Tomi Tilli, 6 ; : Krister Nordvall (optimizations) 6 7 ; Description : Int 13h function AH=Ch, Seek. 7 8 … … 35 36 push bx 36 37 push ax 38 %ifndef USE_186 37 39 call AHCh_SeekToCylinder 38 40 jmp Int13h_PopXRegsAndReturn 41 %else 42 push Int13h_PopXRegsAndReturn 43 ; Fall through to AHCh_SeekToCylinder 44 %endif 39 45 40 46 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AHDh_HReset.asm
r35 r84 2 2 ; Project name : IDE BIOS 3 3 ; Created date : 9.12.2007 4 ; Last update : 24.8.2010 5 ; Author : Tomi Tilli 4 ; Last update : 14.1.2011 5 ; Author : Tomi Tilli, 6 ; : Krister Nordvall (optimizations) 6 7 ; Description : Int 13h function AH=Dh, Reset Hard Disk (Alternate reset). 7 8 … … 25 26 ALIGN JUMP_ALIGN 26 27 AHDh_HandlerForResetHardDisk: 28 %ifndef USE_186 27 29 call AHDh_ResetDrive 28 30 jmp Int13h_PopDiDsAndReturn 31 %else 32 push Int13h_PopDiDsAndReturn 33 ; Fall through to AHDh_ResetDrive 34 %endif 29 35 30 36 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm
r61 r84 2 2 ; Project name : IDE BIOS 3 3 ; Created date : 3.8.2007 4 ; Last update : 28.11.2010 5 ; Author : Tomi Tilli 4 ; Last update : 14.1.2011 5 ; Author : Tomi Tilli, 6 ; : Krister Nordvall (optimizations) 6 7 ; Description : Int 19h BIOS functions (Boot Strap Loader). 7 8 … … 118 119 dec di ; Decrement retry counter 119 120 jnz SHORT .ReadRetryLoop ; Loop while retries left 120 stc121 121 ALIGN JUMP_ALIGN 122 122 .Return:
Note:
See TracChangeset
for help on using the changeset viewer.