Changeset 165 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h


Ignore:
Timestamp:
Aug 20, 2011, 6:37:44 PM (13 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Hopefully this commit is successful. Sorry for the mess.
Location:
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h
Files:
10 added
4 edited

Legend:

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

    r150 r165  
    2222ALIGN JUMP_ALIGN
    2323AH25h_HandlerForGetDriveInformation:
     24    mov     si, [bp+IDEPACK.intpack+INTPACK.bx]
     25%ifdef USE_186
     26    push    Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
     27    ; Fall to AH25h_GetDriveInformationToBufferInESSIfromDriveInDL
     28%else
     29    call    AH25h_GetDriveInformationToBufferInESSIfromDriveInDL
     30    jmp     Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
     31%endif
     32
     33
     34;--------------------------------------------------------------------
     35; AH25h_GetDriveInformationToBufferInESSIfromDriveInDL
     36;   Parameters:
     37;       DL:     Translated Drive number
     38;       DS:DI:  Ptr to DPT (in RAMVARS segment)
     39;       ES:SI:  Ptr to buffer to receive 512-byte drive information
     40;   Returns with INTPACK:
     41;       AH:     Int 13h return status
     42;       CF:     0 if succesfull, 1 if error
     43;   Corrupts registers:
     44;       AL, BX, CX, DX
     45;--------------------------------------------------------------------
     46AH25h_GetDriveInformationToBufferInESSIfromDriveInDL:
     47    push    es
    2448    push    bp
     49    push    di
     50    push    si
    2551
    26     mov     si, [bp+IDEPACK.intpack+INTPACK.bx]
    2752    call    AccessDPT_GetDriveSelectByteToAL
    2853    mov     bh, al
     
    3156    call    Device_IdentifyToBufferInESSIwithDriveSelectByteInBH
    3257
     58    pop     si
     59    pop     di
    3360    pop     bp
    34     jmp     Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
     61    pop     es
     62    ret
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH2h_HRead.asm

    r158 r165  
    1515;       SS:BP:  Ptr to IDEPACK
    1616;   Parameters on INTPACK:
    17 ;       AL:     Number of sectors to read (1...255)
     17;       AL:     Number of sectors to read (1...127)
    1818;       CH:     Cylinder number, bits 7...0
    1919;       CL:     Bits 7...6: Cylinder number bits 9 and 8
     
    2929AH2h_HandlerForReadDiskSectors:
    3030    cmp     BYTE [bp+IDEPACK.intpack+INTPACK.al], 0
    31     je      SHORT AH2h_ExitInt13hSinceSectorCountInIntpackIsZero
     31    jle     SHORT AH2h_ExitInt13hSinceSectorCountInIntpackIsZero
    3232
    33     mov     ah, COMMAND_READ_SECTORS    ; Load sector mode command
    34     test    BYTE [di+DPT.bFlagsHigh], FLGH_DPT_BLOCK_MODE_SUPPORTED
    35     eCMOVNZ ah, COMMAND_READ_MULTIPLE   ; Load block mode command
     33    xor     bx, bx
     34    call    CommandLookup_OrOldInt13hIndexToBL
     35    mov     ah, [cs:bx+g_rgbReadCommandLookup]
    3636    mov     bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_DRQ, FLG_STATUS_DRQ)
    3737    mov     si, [bp+IDEPACK.intpack+INTPACK.bx]
     
    5555    mov     ah, RET_HD_INVALID
    5656    jmp     Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
     57
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH3h_HWrite.asm

    r158 r165  
    1515;       SS:BP:  Ptr to IDEREGS_AND_INTPACK
    1616;   Parameters on INTPACK:
    17 ;       AL:     Number of sectors to write
     17;       AL:     Number of sectors to write (1...127)
    1818;       CH:     Cylinder number, bits 7...0
    1919;       CL:     Bits 7...6: Cylinder number bits 9 and 8
     
    2828AH3h_HandlerForWriteDiskSectors:
    2929    cmp     BYTE [bp+IDEPACK.intpack+INTPACK.al], 0
    30     je      SHORT AH2h_ExitInt13hSinceSectorCountInIntpackIsZero
     30    jle     SHORT AH2h_ExitInt13hSinceSectorCountInIntpackIsZero
    3131
    32     mov     ah, COMMAND_WRITE_SECTORS   ; Load sector mode command
    33     test    BYTE [di+DPT.bFlagsHigh], FLGH_DPT_BLOCK_MODE_SUPPORTED
    34     eCMOVNZ ah, COMMAND_WRITE_MULTIPLE  ; Load block mode command
     32    xor     bx, bx
     33    call    CommandLookup_OrOldInt13hIndexToBL
     34    mov     ah, [cs:bx+g_rgbWriteCommandLookup]
    3535    mov     bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_DRQ, FLG_STATUS_DRQ)
    3636    mov     si, [bp+IDEPACK.intpack+INTPACK.bx]
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH4h_HVerify.asm

    r158 r165  
    1515;       SS:BP:  Ptr to INTPACK
    1616;   Parameters on INTPACK in SS:BP:
    17 ;       AL:     Number of sectors to verify
     17;       AL:     Number of sectors to verify (1...127)
    1818;       CH:     Cylinder number, bits 7...0
    1919;       CL:     Bits 7...6: Cylinder number bits 9 and 8
     
    2727AH4h_HandlerForVerifyDiskSectors:
    2828    cmp     BYTE [bp+IDEPACK.intpack+INTPACK.al], 0
    29     je      SHORT AH2h_ExitInt13hSinceSectorCountInIntpackIsZero
     29    jle     SHORT AH2h_ExitInt13hSinceSectorCountInIntpackIsZero
    3030
    3131    mov     ah, COMMAND_VERIFY_SECTORS
Note: See TracChangeset for help on using the changeset viewer.