source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH1h_HStatus.asm @ 116

Last change on this file since 116 was 116, checked in by krille_n_@…, 13 years ago

Changes to all parts of the project:

  • Removed a redundant macro (HPIO_NORMALIZE_PTR)
  • Deleted XTIDE_Universal_BIOS/Inc/BiosData.inc since that was also redundant.
  • Size optimization: Changed the LOAD_BDA_SEGMENT_TO macro to use the stack on 186+ processors (the old behaviour can still be used where needed).
  • Made other minor size optimizations and cleanups to various functions, mostly in the Int13h handler.
File size: 901 bytes
Line 
1; Project name  :   XTIDE Universal BIOS
2; Description   :   Int 13h function AH=1h, Read Disk Status.
3
4; Section containing code
5SECTION .text
6
7;--------------------------------------------------------------------
8; Int 13h function AH=1h, Read Disk Status.
9;
10; AH1h_HandlerForReadDiskStatus
11;   Parameters:
12;       AH:     Bios function 1h
13;       DL:     Drive number (8xh)
14;   Parameters loaded by Int13h_Jump:
15;       DS:     RAMVARS segment
16;   Returns:
17;       AH:     Int 13h floppy return status
18;       CF:     0 if AH = RET_HD_SUCCESS, 1 otherwise (error)
19;       IF:     1
20;   Corrupts registers:
21;       Flags
22;--------------------------------------------------------------------
23ALIGN JUMP_ALIGN
24AH1h_HandlerForReadDiskStatus:
25    push    ds
26
27    LOAD_BDA_SEGMENT_TO ds, di
28    mov     ah, [BDA.bHDLastSt]     ; Last error to AH
29    cmp     ah, 1                   ; Set CF if error code is zero
30    cmc                             ; Invert CF
31
32    pop     ds
33    jmp     Int13h_PopDiDsAndReturn
Note: See TracBrowser for help on using the repository browser.