Changeset 249 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/EBIOS


Ignore:
Timestamp:
Feb 16, 2012, 1:56:36 PM (13 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Number of successfully transferred sectors is now returned by all transfer functions (instead of requested sector count).
  • Added INT 19h handler for proper reboot.
Location:
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/EBIOS
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/EBIOS/AH42h_ExtendedReadSectors.asm

    r221 r249  
    2020;       CF:     0 if succesfull, 1 if error
    2121;   Return with Disk Address Packet in INTPACK:
    22 ;       .bSectorCount   Number of sectors read successfully
     22;       .wSectorCount   Number of sectors read successfully
    2323;--------------------------------------------------------------------
    2424ALIGN JUMP_ALIGN
     
    2727    mov     ah, [cs:bx+g_rgbReadCommandLookup]
    2828    mov     bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_DRQ, FLG_STATUS_DRQ)
    29 %ifdef USE_186
    30     push    Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
    31     jmp     Idepack_ConvertDapToIdepackAndIssueCommandFromAH
    32 %else
    3329    call    Idepack_ConvertDapToIdepackAndIssueCommandFromAH
     30    ; Fall to AH42h_ReturnFromInt13hAfterStoringErrorCodeFromAHandTransferredSectorsFromCX
     31
     32
     33;--------------------------------------------------------------------
     34; AH42h_ReturnFromInt13hAfterStoringErrorCodeFromAHandTransferredSectorsFromCX
     35;   Parameters:
     36;       AH:     INT 13h Error Code
     37;       CX:     Number of successfully transferred sectors
     38;       SS:BP:  Ptr to IDEPACK
     39;   Returns:
     40;       Nothing, jumps to Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
     41;   Corrupts registers:
     42;       SI, DS
     43;--------------------------------------------------------------------
     44AH42h_ReturnFromInt13hAfterStoringErrorCodeFromAHandTransferredSectorsFromCX:
     45    mov     ds, [bp+IDEPACK.intpack+INTPACK.ds]
     46    mov     si, [bp+IDEPACK.intpack+INTPACK.si]
     47    mov     [si+DAP.wSectorCount], cx
    3448    jmp     Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
    35 %endif
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/EBIOS/AH43h_ExtendedWriteSectors.asm

    r221 r249  
    2222;       CF:     0 if succesfull, 1 if error
    2323;   Return with Disk Address Packet in INTPACK:
    24 ;       .bSectorCount   Number of sectors written successfully
     24;       .wSectorCount   Number of sectors written successfully
    2525;--------------------------------------------------------------------
    2626ALIGN JUMP_ALIGN
     
    3333    mov     bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_DRQ, FLG_STATUS_DRQ)
    3434%ifdef USE_186
    35     push    Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
     35    push    AH42h_ReturnFromInt13hAfterStoringErrorCodeFromAHandTransferredSectorsFromCX
    3636    jmp     Idepack_ConvertDapToIdepackAndIssueCommandFromAH
    3737%else
    3838    call    Idepack_ConvertDapToIdepackAndIssueCommandFromAH
    39     jmp     Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
     39    jmp     SHORT AH42h_ReturnFromInt13hAfterStoringErrorCodeFromAHandTransferredSectorsFromCX
    4040%endif
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/EBIOS/AH44h_ExtendedVerifySectors.asm

    r221 r249  
    2020;       CF:     0 if succesfull, 1 if error
    2121;   Return with Disk Address Packet in INTPACK:
    22 ;       .bSectorCount   Number of sectors verified successfully
     22;       .wSectorCount   Number of sectors verified successfully
    2323;--------------------------------------------------------------------
    2424ALIGN JUMP_ALIGN
     
    2828    mov     bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_DRQ, FLG_STATUS_DRDY)
    2929%ifdef USE_186
    30     push    Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
     30    push    AH42h_ReturnFromInt13hAfterStoringErrorCodeFromAHandTransferredSectorsFromCX
    3131    jmp     Idepack_ConvertDapToIdepackAndIssueCommandFromAH
    3232%else
    3333    call    Idepack_ConvertDapToIdepackAndIssueCommandFromAH
    34     jmp     Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
     34    jmp     SHORT AH42h_ReturnFromInt13hAfterStoringErrorCodeFromAHandTransferredSectorsFromCX
    3535%endif
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/EBIOS/AH47h_ExtendedSeek.asm

    r221 r249  
    3636    jmp     Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
    3737%endif
    38 
    39 .WriteWithVerifyNotSupported:
    40     jmp     Prepare_ReturnFromInt13hWithInvalidFunctionError
Note: See TracChangeset for help on using the changeset viewer.