Changeset 443 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS
- Timestamp:
- Aug 25, 2012, 2:48:40 PM (12 years ago)
- google:author:
- aitotat@gmail.com
- Location:
- trunk/XTIDE_Universal_BIOS
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Inc/RamVars.inc
r433 r443 118 118 endstruc 119 119 120 EXTRA_BYTES_FOR_INTPACK EQU (IDEPACK_size - INTPACK_size)120 SIZE_OF_IDEPACK_WITHOUT_INTPACK EQU (IDEPACK_size - INTPACK_size) 121 121 122 122 -
trunk/XTIDE_Universal_BIOS/Src/Device/Device.asm
r400 r443 89 89 ; CF: Cleared if success, Set if error 90 90 ; Corrupts registers: 91 ; AL, B L, CX, DX, SI, DI, ES91 ; AL, BX, CX, DX, SI, DI, ES 92 92 ;-------------------------------------------------------------------- 93 93 %ifdef MODULE_SERIAL ; IDE + Serial -
trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeCommand.asm
r442 r443 63 63 ; CF: Cleared if success, Set if error 64 64 ; Corrupts registers: 65 ; AL, B L, CX, DX, SI, DI, ES65 ; AL, BX, CX, DX, SI, DI, ES 66 66 ;-------------------------------------------------------------------- 67 67 IdeCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH: … … 74 74 call IdeDPT_StoreDeviceTypeFromIdevarsInCSBPtoDPTinDSDI 75 75 76 ; Wait until drive motors have reached maxspeed76 ; Wait until drive motors have reached full speed 77 77 cmp bp, BYTE ROMVARS.ideVars0 ; First controller? 78 78 jne SHORT .SkipLongWaitSinceDriveIsNotPrimaryMaster … … 88 88 %ifdef MODULE_8BIT_IDE 89 89 ; Enable 8-bit PIO mode for Lo-tech XT-CF 90 push si 90 91 call AH9h_Enable8bitPioModeForXTCF 92 pop si 91 93 jc SHORT .FailedToSet8bitMode 92 94 %endif … … 100 102 ; Clean stack and return 101 103 .FailedToSet8bitMode: 102 lea sp, [bp+ EXTRA_BYTES_FOR_INTPACK] ; This assumes BP hasn't changed between Idepack_FakeToSSBP and here104 lea sp, [bp+SIZE_OF_IDEPACK_WITHOUT_INTPACK] ; This assumes BP hasn't changed between Idepack_FakeToSSBP and here 103 105 pop bp 104 106 ret -
trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeIO.asm
r414 r443 163 163 ; Exchange address lines A0 and A3 from DL 164 164 add dx, [cs:bx] ; DX now has port address 165 mov bl, dl 166 mov bh, MASK_A3_AND_A0_ADDRESS_LINES 167 and bh, bl ; BH = 0, 1, 8 or 9, we can ignore 0 and 9 168 jz SHORT .ReturnTranslatedPortInDX ; Jump out since DH is 0 169 xor bh, MASK_A3_AND_A0_ADDRESS_LINES 170 jz SHORT .ReturnTranslatedPortInDX ; Jump out since DH was 9 171 and dl, ~MASK_A3_AND_A0_ADDRESS_LINES 172 or dl, bh ; Address lines now reversed 165 mov bl, dl ; Port low byte to BL 166 and bl, MASK_A3_AND_A0_ADDRESS_LINES ; Clear all bits except A0 and A3 167 jz SHORT .ReturnTranslatedPortInDX ; A0 and A3 both zeroes, no change needed 168 cmp bl, MASK_A3_AND_A0_ADDRESS_LINES 169 je SHORT .ReturnTranslatedPortInDX ; A0 and A3 both ones, no change needed 170 xor dl, MASK_A3_AND_A0_ADDRESS_LINES ; Invert A0 and A3 173 171 .ReturnTranslatedPortInDX: 174 172 ret -
trunk/XTIDE_Universal_BIOS/Src/Device/Idepack.asm
r421 r443 32 32 Idepack_FakeToSSBP: 33 33 pop ax 34 sub sp, BYTE EXTRA_BYTES_FOR_INTPACK34 sub sp, BYTE SIZE_OF_IDEPACK_WITHOUT_INTPACK 35 35 mov bp, sp 36 36 jmp ax … … 161 161 162 162 ; Device Control byte with interrupts disabled 163 call AccessDPT_GetDeviceControlByteToAL 164 or al, FLG_DEVCONTROL_nIEN ; Disable interrupt 165 mov [bp+IDEPACK.bDeviceControl], al 163 mov BYTE [bp+IDEPACK.bDeviceControl], FLG_DEVCONTROL_nIEN 166 164 167 165 jmp Device_OutputCommandWithParameters -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm
r421 r443 90 90 sti ; Enable interrupts 91 91 cld ; String instructions to increment pointers 92 CREATE_FRAME_INTPACK_TO_SSBP EXTRA_BYTES_FOR_INTPACK92 CREATE_FRAME_INTPACK_TO_SSBP SIZE_OF_IDEPACK_WITHOUT_INTPACK 93 93 call RamVars_GetSegmentToDS 94 94 … … 264 264 or BYTE [bp+IDEPACK.intpack+INTPACK.flags+1], (FLG_FLAGS_IF>>8) 265 265 mov sp, bp ; This makes possible to exit anytime, no matter what is on stack 266 RESTORE_FRAME_INTPACK_FROM_SSBP EXTRA_BYTES_FOR_INTPACK266 RESTORE_FRAME_INTPACK_FROM_SSBP SIZE_OF_IDEPACK_WITHOUT_INTPACK 267 267 268 268 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH9h_HInit.asm
r439 r443 262 262 ; Parameters: 263 263 ; DS:DI: Ptr to DPT 264 ; SS:BP: Ptr to IDEPACK 264 265 ; Returns: 265 266 ; AH: Int 13h return status -
trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm
r431 r443 119 119 call Idepack_FakeToSSBP 120 120 call AH0h_ResetAllOurHardDisksAtTheEndOfDriveInitialization 121 add sp, BYTE EXTRA_BYTES_FOR_INTPACK121 add sp, BYTE SIZE_OF_IDEPACK_WITHOUT_INTPACK 122 122 ret -
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/AccessDPT.asm
r422 r443 62 62 ALIGN JUMP_ALIGN 63 63 AccessDPT_GetDriveSelectByteForEbiosToAL: 64 mov al, [di+DPT. wFlags]64 mov al, [di+DPT.bFlagsLow] 65 65 ; Fall to GetDriveSelectByteForAssistedLBAtoAL 66 66 %endif ; MODULE_EBIOS
Note:
See TracChangeset
for help on using the changeset viewer.