Changeset 477 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers
- Timestamp:
- Oct 20, 2012, 5:04:32 PM (12 years ago)
- google:author:
- aitotat@gmail.com
- Location:
- trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH1Eh_XTCF.asm
r475 r477 112 112 mov BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_DMA 113 113 mov al, [di+DPT_ATA.bBlockSize] 114 jmp AH24h_SetBlockSize ; AH=24h limits block size if necessary 114 call AH24h_SetBlockSize ; AH=24h limits block size if necessary 115 jmp SHORT .Enable8bitPioMode 115 116 116 117 .SetMemoryMappedMode: … … 120 121 .Set8bitPioMode: 121 122 mov BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_PIO8 123 ; Fall to .Enable8bitPioMode 124 125 ; We always need to enable 8-bit mode since 16-bit mode is restored 126 ; when controller is reset (AH=0h or Dh) 122 127 .Enable8bitPioMode: 123 128 jmp AH23h_Enable8bitPioMode -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Prepare.asm
r474 r477 94 94 ALIGN JUMP_ALIGN 95 95 Prepare_BufferToESSIforOldInt13hTransfer: 96 mov si, [bp+IDEPACK.intpack+INTPACK.bx] ; Load offset 97 98 %ifdef MODULE_8BIT_IDE 96 99 cmp BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_DMA 97 100 jne SHORT .NormalizeForSmallestPossibleOffset 98 101 99 ; Normalize segment for physical 64k pages 100 xor bx, bx 101 mov si, [bp+IDEPACK.intpack+INTPACK.es] ; Load segment 102 %rep 4 103 shl si, 1 104 rcl bx, 1 105 %endrep 106 add si, [bp+IDEPACK.intpack+INTPACK.bx] 107 adc bx, BYTE 0 108 mov es, bx ; ES:SI now has physical address 102 ; DMA transfers do not need to normalize pointer 103 ; (it will be converted to physical address in IdeDmaTransfer.asm) 104 mov es, [bp+IDEPACK.intpack+INTPACK.es] 109 105 jmp SHORT Prepare_ByValidatingSectorsInALforOldInt13h 106 %endif ; MODULE_8BIT_IDE 110 107 111 108 ; Normalize segment for 16b pages 112 109 .NormalizeForSmallestPossibleOffset: 113 mov bx, [bp+IDEPACK.intpack+INTPACK.bx] ; Load offset 114 mov si, bx 110 mov bx, si 115 111 eSHR_IM bx, 4 ; Divide offset by 16 116 112 add bx, [bp+IDEPACK.intpack+INTPACK.es]
Note:
See TracChangeset
for help on using the changeset viewer.