Changeset 580 in xtideuniversalbios for trunk/Assembly_Library/Src/Display/DisplayPrint.asm


Ignore:
Timestamp:
Feb 19, 2015, 1:38:02 PM (9 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • XTIDECFG: Fixed a bug from r459 where the menu option for selection of default boot drive would be missing if the BIOS had been built without MODULE_HOTKEYS. The menu option is now visible if either or both of MODULE_HOTKEYS and MODULE_BOOT_MENU is available.
  • BIOS: Disabled ATA-ID validation by adding a new define (NO_ATAID_VALIDATION) and making it the default for all builds since at least two WD Caviar drive models are incompatible with it.
  • Fixed the "No Fixed Disk Present in FDISK"-bug introduced in r551 which means the Tiny build now works without including MODULE_DRIVEXLATE.
  • Fixed a bug from r528 where pressing hotkey F6 would not initiate detection of serial drives.
  • Fixed a bug from r186 in DisplayFormatCompressed.asm where the boot menu would print the IRQ in hexadecimal format when it should be in decimal format.
  • Optimizations and fixes.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Assembly_Library/Src/Display/DisplayPrint.asm

    r567 r580  
    125125DisplayPrint_WordFromAXWithBaseInBX:
    126126    push    cx
    127     push    bx
    128127
    129128    xor     cx, cx
    130129ALIGN DISPLAY_JUMP_ALIGN
    131130.DivideLoop:
     131    inc     cx                  ; Increment character count
    132132    xor     dx, dx              ; DX:AX now holds the integer
    133133    div     bx                  ; Divide DX:AX by base
    134134    push    dx                  ; Push remainder
    135     inc     cx                  ; Increment character count
    136135    test    ax, ax              ; All divided?
    137136    jnz     SHORT .DivideLoop   ;  If not, loop
    138137
     138ALIGN DISPLAY_JUMP_ALIGN
    139139PrintAllPushedDigits:           ; Unused entrypoint OK
    140     mov     bx, g_rgcDigitToCharacter
    141 ALIGN DISPLAY_JUMP_ALIGN
    142140.PrintNextDigit:
    143141    pop     ax                  ; Pop digit
    144     cs xlatb
     142    cmp     al, 10              ; Convert binary digit in AL to ASCII hex digit ('0'-'9' or 'A'-'F')
     143    sbb     al, 69h
     144    das
    145145    call    DisplayPrint_CharacterFromAL
    146146    loop    .PrintNextDigit
    147147
    148     pop     bx
    149     pop     cx
    150     ret
    151 
    152 g_rgcDigitToCharacter:  db  "0123456789ABCDEF"
    153 
    154 %endif ; MODULE_STRINGS_COMPRESSED
     148    pop     cx
     149    ret
     150%endif ; ~MODULE_STRINGS_COMPRESSED
    155151
    156152;--------------------------------------------------------------------
     
    170166DisplayPrint_QWordFromSSBPwithBaseInBX:
    171167    push    cx
    172     push    bx
    173168
    174169    mov     cx, bx              ; CX = Integer base
     
    181176    cmp     WORD [bp], BYTE 0   ; All divided?
    182177    jne     SHORT .DivideLoop   ;  If not, loop
    183     mov     cx, bx              ; Character count to CX
     178    xchg    cx, bx              ; Character count to CX, Integer base to BX
    184179    jmp     SHORT PrintAllPushedDigits
    185180%endif
Note: See TracChangeset for help on using the changeset viewer.