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


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.
File:
1 edited

Legend:

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

    r161 r165  
    3333
    3434    ; Jump to correct BIOS function
    35     cmp     ah, 25h                     ; Valid BIOS function?
    36     ja      SHORT Int13h_UnsupportedFunction
    3735    eMOVZX  bx, ah
    3836    shl     bx, 1
     37    cmp     ah, 25h                     ; Possible EBIOS function?
     38    ja      SHORT .JumpToEbiosFunction
    3939    jmp     [cs:bx+g_rgw13hFuncJump]    ; Jump to BIOS function
     40
     41    ; Jump to correct EBIOS function
     42ALIGN JUMP_ALIGN
     43.JumpToEbiosFunction:
     44    test    BYTE [cs:ROMVARS.wFlags], FLG_ROMVARS_FULLMODE  ; Full mode?
     45    jz      SHORT Int13h_UnsupportedFunction
     46    test    BYTE [di+DPT.bFlagsLow], FLG_DRVNHEAD_LBA       ; LBA supported?
     47    jz      SHORT Int13h_UnsupportedFunction
     48    cmp     ah, 48h                     ; Above last valid function?
     49    ja      SHORT Int13h_UnsupportedFunction
     50    sub     bx, 41h<<1                  ; BX = Offset to EBIOS jump table
     51    jl      SHORT Int13h_UnsupportedFunction
     52    jmp     [cs:bx+g_rgwEbiosFunctionJumpTable]
    4053
    4154
     
    227240    dw  AH24h_HandlerForSetMultipleBlocks               ; 24h, Set Multiple Blocks (PS/1)
    228241    dw  AH25h_HandlerForGetDriveInformation             ; 25h, Get Drive Information (PS/1)
    229 ;   dw  Int13h_UnsupportedFunction                      ; 26h,
    230 ;   dw  Int13h_UnsupportedFunction                      ; 27h,
    231 ;   dw  Int13h_UnsupportedFunction                      ; 28h,
    232 ;   dw  Int13h_UnsupportedFunction                      ; 29h,
    233 ;   dw  Int13h_UnsupportedFunction                      ; 2Ah,
    234 ;   dw  Int13h_UnsupportedFunction                      ; 2Bh,
    235 ;   dw  Int13h_UnsupportedFunction                      ; 2Ch,
    236 ;   dw  Int13h_UnsupportedFunction                      ; 2Dh,
    237 ;   dw  Int13h_UnsupportedFunction                      ; 2Eh,
    238 ;   dw  Int13h_UnsupportedFunction                      ; 2Fh,
    239 ;   dw  Int13h_UnsupportedFunction                      ; 30h,
    240 ;   dw  Int13h_UnsupportedFunction                      ; 31h,
    241 ;   dw  Int13h_UnsupportedFunction                      ; 32h,
    242 ;   dw  Int13h_UnsupportedFunction                      ; 33h,
    243 ;   dw  Int13h_UnsupportedFunction                      ; 34h,
    244 ;   dw  Int13h_UnsupportedFunction                      ; 35h,
    245 ;   dw  Int13h_UnsupportedFunction                      ; 36h,
    246 ;   dw  Int13h_UnsupportedFunction                      ; 37h,
    247 ;   dw  Int13h_UnsupportedFunction                      ; 38h,
    248 ;   dw  Int13h_UnsupportedFunction                      ; 39h,
    249 ;   dw  Int13h_UnsupportedFunction                      ; 3Ah,
    250 ;   dw  Int13h_UnsupportedFunction                      ; 3Bh,
    251 ;   dw  Int13h_UnsupportedFunction                      ; 3Ch,
    252 ;   dw  Int13h_UnsupportedFunction                      ; 3Dh,
    253 ;   dw  Int13h_UnsupportedFunction                      ; 3Eh,
    254 ;   dw  Int13h_UnsupportedFunction                      ; 3Fh,
    255 ;   dw  Int13h_UnsupportedFunction                      ; 40h,
    256 ;   dw  Int13h_UnsupportedFunction                      ; 41h, Check if Extensions Present (EBIOS)*
    257 ;   dw  Int13h_UnsupportedFunction                      ; 42h, Extended Read Sectors (EBIOS)*
    258 ;   dw  Int13h_UnsupportedFunction                      ; 43h, Extended Write Sectors (EBIOS)*
    259 ;   dw  Int13h_UnsupportedFunction                      ; 44h, Extended Verify Sectors (EBIOS)*
    260 ;   dw  Int13h_UnsupportedFunction                      ; 45h, Lock and Unlock Drive (EBIOS)***
    261 ;   dw  Int13h_UnsupportedFunction                      ; 46h, Eject Media Request (EBIOS)***
    262 ;   dw  Int13h_UnsupportedFunction                      ; 47h, Extended Seek (EBIOS)*
    263 ;   dw  Int13h_UnsupportedFunction                      ; 48h, Get Extended Drive Parameters (EBIOS)*
     242
     243g_rgwEbiosFunctionJumpTable:
     244    dw  AH41h_HandlerForCheckIfExtensionsPresent        ; 41h, Check if Extensions Present (EBIOS)*
     245    dw  AH42h_HandlerForExtendedReadSectors             ; 42h, Extended Read Sectors (EBIOS)*
     246    dw  AH43h_HandlerForExtendedWriteSectors            ; 43h, Extended Write Sectors (EBIOS)*
     247    dw  AH44h_HandlerForExtendedVerifySectors           ; 44h, Extended Verify Sectors (EBIOS)*
     248    dw  Int13h_UnsupportedFunction                      ; 45h, Lock and Unlock Drive (EBIOS)***
     249    dw  Int13h_UnsupportedFunction                      ; 46h, Eject Media Request (EBIOS)***
     250    dw  AH47h_HandlerForExtendedSeek                    ; 47h, Extended Seek (EBIOS)*
     251    dw  AH48h_HandlerForGetExtendedDriveParameters      ; 48h, Get Extended Drive Parameters (EBIOS)*
    264252;   dw  Int13h_UnsupportedFunction                      ; 49h, Get Extended Disk Change Status (EBIOS)***
    265253;   dw  Int13h_UnsupportedFunction                      ; 4Ah, Initiate Disk Emulation (Bootable CD-ROM)
Note: See TracChangeset for help on using the changeset viewer.