Changeset 128 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Boot


Ignore:
Timestamp:
Mar 4, 2011, 1:47:17 PM (13 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes to the XTIDE Universal BIOS:

  • Size optimizations in various files.
Location:
trunk/XTIDE_Universal_BIOS/Src/Boot
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Boot/BootInfo.asm

    r121 r128  
    7373    stosw
    7474    loop    .CopyNextWord
    75     xor     ax, ax
     75    xor     ax, ax                      ; Zero AX and clear CF
    7676    stosb                               ; Terminate with NULL
    7777
     
    7979    pop     si
    8080    pop     ds
    81     clc
    8281    ret
    8382
     
    9493;   Corrupts registers:
    9594;       Nothing
    96 ;--------------------------------------------------------------------   
     95;--------------------------------------------------------------------
    9796ALIGN JUMP_ALIGN
    9897BootInfo_GetTotalSectorCount:
  • trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenu.asm

    r127 r128  
    2424    cmp     cx, BYTE NO_ITEM_SELECTED
    2525    je      SHORT BootMenu_DisplayAndReturnSelection    ; Clear screen and display menu
    26     jmp     SHORT BootMenu_ConvertMenuitemFromCXtoDriveInDX
     26    ; Fall through to BootMenu_ConvertMenuitemFromCXtoDriveInDX
     27
     28;--------------------------------------------------------------------
     29; BootMenu_ConvertMenuitemFromCXtoDriveInDX
     30;   Parameters:
     31;       CX:     Index of menuitem selected from Boot Menu
     32;       DS:     RAMVARS segment
     33;   Returns:
     34;       DX:     Drive number to be used for booting
     35;   Corrupts registers:
     36;       CX
     37;--------------------------------------------------------------------
     38ALIGN JUMP_ALIGN
     39BootMenu_ConvertMenuitemFromCXtoDriveInDX:
     40    mov     dx, cx                  ; Copy menuitem index to DX
     41    call    FloppyDrive_GetCountToCX
     42    cmp     dx, cx                  ; Floppy drive?
     43    jb      SHORT .ReturnFloppyDriveInDX
     44    sub     dx, cx                  ; Remove floppy drives from index
     45    or      dl, 80h
     46.ReturnFloppyDriveInDX:
     47    ret
    2748
    2849
     
    7798ALIGN JUMP_ALIGN
    7899BootMenu_GetHeightToAHwithItemCountInAL:
     100    add     al, BOOT_MENU_HEIGHT_WITHOUT_ITEMS
    79101    xchg    cx, ax
    80     add     cl, BOOT_MENU_HEIGHT_WITHOUT_ITEMS
    81102    CALL_DISPLAY_LIBRARY GetColumnsToALandRowsToAH
    82103    sub     ah, MENU_SCREEN_BOTTOM_LINES*2  ; Leave space for bottom info
     
    109130    ret
    110131
     132
    111133;--------------------------------------------------------------------
    112134; Returns letter for first hard disk. Usually it will be 'c' but it
     
    130152
    131153;--------------------------------------------------------------------
    132 ; BootMenu_ConvertMenuitemFromCXtoDriveInDX
    133 ;   Parameters:
    134 ;       CX:     Index of menuitem selected from Boot Menu
    135 ;       DS:     RAMVARS segment
    136 ;   Returns:
    137 ;       DX:     Drive number to be used for booting
    138 ;   Corrupts registers:
    139 ;       CX
    140 ;--------------------------------------------------------------------
    141 ALIGN JUMP_ALIGN
    142 BootMenu_ConvertMenuitemFromCXtoDriveInDX:
    143     mov     dx, cx                  ; Copy menuitem index to DX
    144     call    FloppyDrive_GetCountToCX
    145     cmp     dx, cx                  ; Floppy drive?
    146     jb      SHORT .ReturnFloppyDriveInDX
    147     sub     dx, cx                  ; Remove floppy drives from index
    148     or      dl, 80h
    149 .ReturnFloppyDriveInDX:
    150     ret
    151 
    152 
    153 ;--------------------------------------------------------------------
    154154; BootMenu_GetMenuitemToDXforDriveInDL
    155155;   Parameters:
     
    163163BootMenu_GetMenuitemToDXforDriveInDL:
    164164    xor     dh, dh                      ; Drive number now in DX
    165     test    dl, 80h
    166     jz      SHORT .ReturnItemIndexInDX  ; Return if floppy drive (HD bit not set)
     165    test    dl, dl
     166    jns     SHORT .ReturnItemIndexInDX  ; Return if floppy drive (HD bit not set)
    167167    call    FloppyDrive_GetCountToCX
    168168    and     dl, ~80h                    ; Clear HD bit
     
    187187ALIGN JUMP_ALIGN
    188188BootMenu_IsDriveInSystem:
    189     test    dl, 80h                             ; Floppy drive?
    190     jz      SHORT .IsFloppyDriveIsInSystem
     189    test    dl, dl                              ; Floppy drive?
     190    jns     SHORT .IsFloppyDriveIsInSystem
    191191    call    RamVars_GetHardDiskCountFromBDAtoCX ; Hard Disk count to CX
    192192    or      cl, 80h                             ; Set Hard Disk bit to CX
  • trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuEvent.asm

    r127 r128  
    157157    call    RamVars_GetSegmentToDS
    158158    call    BootMenu_ConvertMenuitemFromCXtoDriveInDX
    159     test    dl, 80h                 ; Floppy drive?
    160     jz      SHORT .DrawFloppyDrive
     159    test    dl, dl                  ; Floppy drive?
     160    jns     SHORT .DrawFloppyDrive
    161161    jmp     [cs:bx+ITEM_TYPE_REFRESH.HardDisk]
    162162ALIGN JUMP_ALIGN
  • trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrint.asm

    r127 r128  
    2222    CALL_DISPLAY_LIBRARY PrintNewlineCharacters
    2323    mov     si, ROMVARS.szVersion
    24     jmp     BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
     24    ; Fall through to BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
     25
     26
     27;--------------------------------------------------------------------
     28; BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
     29;   Parameters:
     30;       CS:SI:  Ptr to NULL terminated string to print
     31;   Returns:
     32;       CF:     Set since menu event was handled successfully
     33;   Corrupts registers:
     34;       AX
     35;--------------------------------------------------------------------
     36ALIGN JUMP_ALIGN
     37BootMenuPrint_NullTerminatedStringFromCSSIandSetCF:
     38    push    di
     39    CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
     40    pop     di
     41    stc
     42    ret
    2543
    2644
     
    5371BootMenuPrint_FloppyMenuitem:
    5472    push    bp
    55 
    5673    mov     bp, sp
    5774    mov     si, g_szFDLetter
     
    109126.HardDiskMenuitemForForeignDrive:
    110127    mov     si, g_szforeignHD
    111     jmp     BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
     128    jmp     SHORT BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
    112129
    113130
     
    177194.PrintKnownFloppyType:
    178195    push    bp
    179 
    180196    mov     bp, sp
    181197    mov     si, g_szFddSize
     
    320336
    321337;--------------------------------------------------------------------
    322 ; BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
    323 ;   Parameters:
    324 ;       CS:SI:  Ptr to NULL terminated string to print
    325 ;   Returns:
    326 ;       CF:     Set since menu event was handled successfully
    327 ;   Corrupts registers:
    328 ;       AX
    329 ;--------------------------------------------------------------------
    330 ALIGN JUMP_ALIGN
    331 BootMenuPrint_NullTerminatedStringFromCSSIandSetCF:
    332     push    di
    333     CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
    334     pop     di
    335     stc
    336     ret
    337 
    338 
    339 ;--------------------------------------------------------------------
    340338; BootMenuPrint_ClearInformationArea
    341339;   Parameters:
  • trunk/XTIDE_Universal_BIOS/Src/Boot/BootPrint.asm

    r120 r128  
    2121
    2222    mov     ax, g_szHDD
    23     test    dl, 80h
    24     eCMOVZ  ax, g_szFDD
     23    test    dl, dl
     24    js      SHORT .NotFDD
     25    mov     ax, g_szFDD
     26.NotFDD:
    2527    push    ax
    2628
  • trunk/XTIDE_Universal_BIOS/Src/Boot/BootSector.asm

    r96 r128  
    2323    jc      SHORT .FailedToLoadFirstSector
    2424
    25     test    dl, 80h
    26     jz      SHORT .AlwaysBootFromFloppyDriveForBooterGames
     25    test    dl, dl
     26    jns     SHORT .AlwaysBootFromFloppyDriveForBooterGames
    2727    cmp     WORD [es:bx+510], 0AA55h        ; Valid boot sector?
    2828    jne     SHORT .FirstHardDiskSectorNotBootable
     
    8484.ResetBootDriveFromDL:
    8585    xor     ax, ax                          ; AH=0h, Disk Controller Reset
    86     test    dl, 80h                         ; Floppy drive?
    87     eCMOVNZ ah, 0Dh                         ; AH=Dh, Reset Hard Disk (Alternate reset)
     86    test    dl, dl                          ; Floppy drive?
     87    jns     SHORT .SkipAltReset
     88    mov     ah, 0Dh                         ; AH=Dh, Reset Hard Disk (Alternate reset)
     89.SkipAltReset:
    8890    int     INTV_DISK_FUNC
    8991    ret
Note: See TracChangeset for help on using the changeset viewer.