Changeset 174 in xtideuniversalbios


Ignore:
Timestamp:
Sep 18, 2011, 10:51:12 PM (13 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Excluded the Math_DivDXAXbyCX procedure as it is currently unused. Also made it 2 bytes smaller.
Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Assembly_Library/Src/Util/Math.asm

    r172 r174  
    1818;--------------------------------------------------------------------
    1919ALIGN JUMP_ALIGN
    20 Math_DivQWatSSBPbyCX:
     20Math_DivQWatSSBPbyCX:       ; This procedure is included but not used in XTIDECFG
    2121    xor     dx, dx
    2222    mov     ax, [bp+6]      ; Load highest divident WORD to DX:AX
     
    4949;       Nothing
    5050;--------------------------------------------------------------------
     51%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
    5152ALIGN JUMP_ALIGN
    52 Math_DivDXAXbyCX:
    53     mov     bx, ax
    54     mov     ax, dx
    55     xor     dx, dx
     53Math_DivDXAXbyCX:           ; This procedure is included but not used in XTIDECFG
     54    xor     bx, bx
     55    xchg    bx, ax
     56    xchg    dx, ax
    5657    div     cx
    5758    xchg    ax, bx
     
    5960    xchg    dx, bx
    6061    ret
     62%endif
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/AtaID.asm

    r173 r174  
    1010; this is how to fit a big drive into INT13's skimpy size requirements,
    1111; with a maximum of 8.4G available.
    12 ; 
    13 ; total LBAs (as obtained by words 60+61) 
     12;
     13; total LBAs (as obtained by words 60+61)
    1414; divided by 63 (sectors per track) (save as value A)
    1515; Sub 1 from A
    16 ; divide A by 1024 + truncate. 
     16; divide A by 1024 + truncate.
    1717; == total number of heads to use.
    1818; add 1
    1919; this value must be either 16, 32, 64, 128, or 256 (round up)
    2020; then take the value A above and divide by # of heads
    21 ; to get the # of cylinders to use. 
     21; to get the # of cylinders to use.
    2222;
    2323;
    2424; so a LBA28 drive will have 268,435,456 as maximum LBAs
    25 ; 
     25;
    2626; 10000000h / 63   = 410410h (total cylinders or tracks)
    2727;   410410h / 1024 = 1041h, which is way more than 256 heads, but 256 is max.
     
    3535; anyway, so there's no need to use the 48bit LBA values.
    3636;
    37 ; AtaID_GetLbaAssistedCHStoAXBLBH:
     37; AtaID_GetLbaAssistedCHStoDXAXBLBH:
    3838;   Parameters:
    3939;       BX:DX:AX:   Total number of sectors
Note: See TracChangeset for help on using the changeset viewer.