Ignore:
Timestamp:
May 1, 2011, 6:44:29 PM (13 years ago)
Author:
aitotat
google:author:
aitotat
Message:

Changes to XTIDE Universal BIOS:

  • AH=4h again uses VERIFY command (copy-pasting had changed it to WRITE).
  • Timeout should now work on all overflow situations.
  • Cleaned code a bit.
File:
1 edited

Legend:

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

    r150 r155  
    1515;       SS:BP:  Ptr to IDEPACK
    1616;   Parameters on INTPACK:
    17 ;       AL:     Number of sectors to read (1...255, 0=256)
     17;       AL:     Number of sectors to read (1...255)
    1818;       CH:     Cylinder number, bits 7...0
    1919;       CL:     Bits 7...6: Cylinder number bits 9 and 8
     
    2828ALIGN JUMP_ALIGN
    2929AH2h_HandlerForReadDiskSectors:
     30    call    AH2h_ExitInt13hIfSectorCountInIntpackIsZero
    3031    mov     ah, COMMAND_READ_SECTORS    ; Load sector mode command
    3132    test    WORD [di+DPT.wFlags], FLG_DPT_BLOCK_MODE_SUPPORTED
     
    4041    jmp     Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
    4142%endif
     43
     44
     45;--------------------------------------------------------------------
     46; AH2h_ExitInt13hIfSectorCountInIntpackIsZero
     47;   Parameters:
     48;       SS:BP:  Ptr to IDEPACK
     49;   Parameters on INTPACK:
     50;       AL:     Number of sectors to transfer (1...255)
     51;   Returns:
     52;       Nothing (does not return if error)
     53;   Corrupts registers:
     54;       Nothing
     55;--------------------------------------------------------------------
     56ALIGN JUMP_ALIGN
     57AH2h_ExitInt13hIfSectorCountInIntpackIsZero:
     58    cmp     BYTE [bp+IDEPACK.intpack+INTPACK.al], 0
     59    je      SHORT .InvalidSectorCount
     60    ret
     61.InvalidSectorCount:
     62    mov     ah, RET_HD_INVALID
     63    jmp     Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
Note: See TracChangeset for help on using the changeset viewer.