Changeset 392 in xtideuniversalbios


Ignore:
Timestamp:
Apr 17, 2012, 2:42:54 PM (12 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Greatly improved Hotkey Bar is displayed during drive detection.
  • 8k builds no longer include boot menu.
  • Boot menu is displayed only if F2 is pressed during drive detection.
  • Some changes to directory structure.


Location:
trunk/XTIDE_Universal_BIOS
Files:
16 added
2 deleted
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Inc/BootMenu.inc

    r376 r392  
    3030BOOT_MENU_HEIGHT_WITHOUT_ITEMS          EQU (BOOT_MENU_TITLE_LINES + BOOT_MENU_INFO_LINES + BOOT_MENU_SEPARATOR_LINES_PLUS_SHADOW)
    3131MENU_SCREEN_BOTTOM_LINES                EQU 1
    32 
    33 ; Hotkeys
    34 ROM_BOOT_HOTKEY_SCANCODE                EQU 42h ; F8
    3532
    3633
  • trunk/XTIDE_Universal_BIOS/Inc/BootVars.inc

    r376 r392  
    3030; Segment is always 0000h, same as BDA segment
    3131struc BOOTVARS
    32                     resb    7C00h
    33     .rgbAtaInfo:                    ; 7C00h, ATA Information for drive detection
    34     .rgbBootSect    resb    512     ; 7C00h, Boot sector
    35                     resb    256     ; Boot Menu stack
     32                        resb    7C00h
     33    .rgbAtaInfo:                        ; 7C00h, ATA Information for drive detection
     34    .rgbBootSect        resb    512     ; 7C00h, Boot sector
     35                        resb    256     ; Boot Menu stack
    3636    .rgbMnuStack:
    37     .dwPostStack    resb    4       ; POST stack pointer when entering INT 19h
    38     .rgBootNfo:                     ; Array containing BOOTNFO structs
     37    .dwPostStack        resb    4       ; POST stack pointer when entering INT 19h
     38    .hotkeyVars         resb    HOTKEYVARS_size
     39    .rgBootNfo:                         ; Array containing BOOTNFO structs
    3940endstruc
     41
     42struc HOTKEYVARS
     43    .bScancode          resb    1       ; Function hotkey scancode
     44    .bFlags             resb    1       ; Must be just before .bHddLetter!
     45    .wHddAndFddLetters:
     46    .bHddLetter         resb    1       ; Hard Drive letter hotkey (upper case)
     47    .bFddLetter         resb    1       ; Floppy Drive letter hotkey (upper case)
     48endstruc
     49
     50; Bit defines for HOTKEYVARS.bFlags
     51FLG_HOTKEY_HD_FIRST     EQU     (1<<0)  ; First try to boot from HDD, then FDD
     52
    4053
    4154
  • trunk/XTIDE_Universal_BIOS/Inc/RomVars.inc

    r380 r392  
    3737    .wBootTimeout       resb    2   ; Boot Menu selection timeout in system timer ticks
    3838    .bIdeCnt            resb    1   ; Number of available IDE controllers
    39     .bBootDrv           resb    1   ; Boot Menu default drive
     39    .bBootDrv           resb    1   ; Default drive to boot from
    4040    .bMinFddCnt         resb    1   ; Minimum number of Floppy Drives
    4141    .bStealSize         resb    1   ; Number of 1kB blocks stolen from 640kB base RAM
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH15h_HSize.asm

    r376 r392  
    8181;       CX
    8282;--------------------------------------------------------------------
     83%ifdef MODULE_BOOT_MENU
    8384AH15h_GetSectorCountFromForeignDriveToDXAX:
    8485    mov     ah, GET_DRIVE_PARAMETERS
    8586    call    Int13h_CallPreviousInt13hHandler
    8687    jmp     SHORT ConvertAH08hReturnValuesToSectorCount
     88%endif
    8789
    8890AH15h_GetSectorCountToBXDXAX:
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm

    r386 r392  
    2222
    2323;--------------------------------------------------------------------
    24 ; INT 19h handler that properly reboots the computer when
    25 ; INT 19h is called.
    26 ;
    27 ; Int19h_ResetHandler
    28 ;   Parameters:
    29 ;       Nothing
    30 ;   Returns:
    31 ;       Never returns (reboots computer)
    32 ;--------------------------------------------------------------------
    33 Int19h_ResetHandler:
    34     mov     ax, BOOT_FLAG_WARM              ; Skip memory tests
    35     jmp     Reboot_ComputerWithBootFlagInAX
    36 
    37 
    38 ;--------------------------------------------------------------------
    3924; Int19h_BootLoaderHandler
    4025;   Parameters:
     
    4429;--------------------------------------------------------------------
    4530Int19h_BootLoaderHandler:
    46     sti
    47     ; Install INT 19h handler for proper reboot
    48     LOAD_BDA_SEGMENT_TO es, ax
    49     mov     al, BIOS_BOOT_LOADER_INTERRUPT_19h  ; INT 19h interrupt vector offset
    50     mov     si, Int19h_ResetHandler             ; INT 19h handler to reboot the system
    51     call    Interrupts_InstallHandlerToVectorInALFromCSSI
    52     call    Initialize_AndDetectDrives          ; Installs new boot menu loader
    53     ; Fall to .PrepareStackAndSelectDriveFromBootMenu
     31    sti                                         ; Allow timer interrupts
     32    LOAD_BDA_SEGMENT_TO es, ax                  ; Load BDA segment (zero) to ES
     33    ; Fall to .PrepareBootLoaderStack
     34
    5435
    5536;--------------------------------------------------------------------
    56 ; .PrepareStackAndSelectDriveFromBootMenu
     37; Drive detection and boot menu use lots of stack so it is
     38; wise to relocate stack. Otherwise something important from
     39; interrupt vectors are likely corrupted, likely our own DPTs if
     40; they are located to 30:0h.
     41;
     42; .PrepareBootLoaderStack
    5743;   Parameters:
    5844;       ES:     BDA and interrupt vector segment (zero)
     
    6046;       Never returns (loads operating system)
    6147;--------------------------------------------------------------------
    62 .PrepareStackAndSelectDriveFromBootMenu:
     48.PrepareBootLoaderStack:
    6349    STORE_POST_STACK_POINTER
    6450    SWITCH_TO_BOOT_MENU_STACK
    6551    ; Fall to .InitializeDisplay
    6652
     53
    6754;--------------------------------------------------------------------
    6855; .InitializeDisplay
    6956;   Parameters:
    70 ;       Nothing
     57;       ES:     BDA and interrupt vector segment (zero)
    7158;   Returns:
    7259;       Never returns (loads operating system)
     
    7966    int     BIOS_VIDEO_INTERRUPT_10h
    8067.InitializeDisplayLibrary:
    81     call    BootMenuPrint_InitializeDisplayContext
    82     ; Fall to .SelectDriveToBootFrom
     68    call    DetectPrint_InitializeDisplayContext
     69    ; Fall to .InitializeBiosAndDetectDrives
     70
    8371
    8472;--------------------------------------------------------------------
    85 ; .SelectDriveToBootFrom
     73; .InitializeBiosAndDetectDrives
    8674;   Parameters:
    87 ;       Nothing
     75;       ES:     BDA and interrupt vector segment (zero)
     76;   Returns:
     77;       DS:     RAMVARS segment
     78;--------------------------------------------------------------------
     79    call    Initialize_AndDetectDrives 
     80    ; Fall to SelectDriveToBootFrom
     81
     82
     83;--------------------------------------------------------------------
     84; SelectDriveToBootFrom
     85;   Parameters:
     86;       DS:     RAMVARS segment
     87;       ES:     BDA and interrupt vector segment (zero)
    8888;   Returns:
    8989;       Never returns (loads operating system)
    9090;--------------------------------------------------------------------
    91 .SelectDriveToBootFrom:
    92     call    RamVars_GetSegmentToDS
     91SelectDriveToBootFrom:
     92    call    HotkeyBar_UpdateDuringDriveDetection
     93
    9394%ifdef MODULE_BOOT_MENU
    94     cmp     WORD [cs:ROMVARS.wfDisplayBootMenu], BYTE 0
    95     jne     SHORT ProcessBootMenuSelectionsUntilBootableDriveSelected   ; Display boot menu
     95    mov     di, BOOTVARS.hotkeyVars+HOTKEYVARS.bScancode
     96    cmp     BYTE [es:di], BOOT_MENU_HOTKEY_SCANCODE
     97    jne     SHORT .DoNotDisplayBootMenu
     98
     99    ; Stop blinking the Boot Menu hotkey and display menu
     100    mov     BYTE [es:di], 0
     101    call    HotkeyBar_DrawToTopOfScreen
     102    call    BootMenu_DisplayAndStoreSelectionAsHotkey
     103.DoNotDisplayBootMenu:
    96104%endif
    97     ; Fall to BootFromDriveAthenTryDriveC
     105
     106    ; Check if ROM boot (INT 18h) wanted
     107    cmp     BYTE [es:BOOTVARS.hotkeyVars+HOTKEYVARS.bScancode], ROM_BOOT_HOTKEY_SCANCODE
     108    je      SHORT JumpToBootSector_or_RomBoot   ; CF clear so ROM boot
     109
     110    ; Try to boot from Primary boot drive (00h by default)
     111    call    HotkeyBar_GetPrimaryBootDriveNumberToDL
     112    call    TryToBootFromPrimaryOrSecondaryBootDevice
     113    jc      SHORT JumpToBootSector_or_RomBoot
     114
     115    ; Try to boot from Secondary boot device (80h by default)
     116    call    HotkeyBar_GetSecondaryBootDriveNumberToDL
     117    call    TryToBootFromPrimaryOrSecondaryBootDevice
     118
     119%ifdef MODULE_BOOT_MENU
     120    ; Force Boot Menu hotkey to display boot menu
     121    mov     BYTE [es:BOOTVARS.hotkeyVars+HOTKEYVARS.bScancode], BOOT_MENU_HOTKEY_SCANCODE
     122    jnc     SHORT SelectDriveToBootFrom
     123%endif
     124    ; Fall to JumpToBootSector_or_RomBoot
     125
    98126
    99127;--------------------------------------------------------------------
    100 ; BootFromDriveAthenTryDriveC
    101 ;   Parameters:
    102 ;       DS:     RAMVARS segment
    103 ;   Returns:
    104 ;       Never returns (loads operating system)
    105 ;--------------------------------------------------------------------
    106 BootFromDriveAthenTryDriveC:
    107     xor     dx, dx              ; DL = 00h = Floppy Drive A
    108     call    BootSector_TryToLoadFromDriveDL
    109     jc      SHORT Int19hMenu_JumpToBootSector_or_RomBoot
    110     mov     dl, 80h             ; DL = 80h = First Hard Drive (usually C)
    111     call    BootSector_TryToLoadFromDriveDL
    112     jmp     SHORT Int19hMenu_JumpToBootSector_or_RomBoot    ; ROM Boot if error
    113 
    114 
    115 %ifdef MODULE_BOOT_MENU
    116 ;--------------------------------------------------------------------
    117 ; ProcessBootMenuSelectionsUntilBootableDriveSelected
    118 ;   Parameters:
    119 ;       DS:     RAMVARS segment
    120 ;   Returns:
    121 ;       Never returns
    122 ;--------------------------------------------------------------------
    123 ProcessBootMenuSelectionsUntilBootableDriveSelected:
    124     call    BootMenu_DisplayAndReturnSelectionInDX
    125     call    DriveXlate_ToOrBack                                         ; Translate drive number
    126     call    BootSector_TryToLoadFromDriveDL
    127     jnc     SHORT ProcessBootMenuSelectionsUntilBootableDriveSelected   ; Boot failure, show menu again
    128     ; Fall to Int19hMenu_JumpToBootSector_or_RomBoot
    129     ; (CF is set or we wouldn't be here, see "jnc" immediately above)
    130 %endif
    131 
    132 ;--------------------------------------------------------------------
    133 ; Int19hMenu_JumpToBootSector_or_RomBoot
     128; JumpToBootSector_or_RomBoot
    134129;
    135130; Switches back to the POST stack, clears the DS and ES registers,
     
    140135;       DL:     Drive to boot from (translated, 00h or 80h)
    141136;       CF:     Set for Boot Sector Boot
    142 ;               Clear for Rom Boot
     137;               Clear for ROM Boot
    143138;       ES:BX:  (if CF set) Ptr to boot sector
    144139;
     
    146141;       Never returns
    147142;--------------------------------------------------------------------
    148 Int19hMenu_JumpToBootSector_or_RomBoot:
     143JumpToBootSector_or_RomBoot:
    149144    mov     cx, es      ; Preserve MBR segment (can't push because of stack change)
    150145    mov     ax, 0       ; NOTE: can't use XOR (LOAD_BDA_SEGMENT_TO) as it impacts CF
     
    167162; Boot by calling INT 18h (ROM Basic of ROM DOS)
    168163.romboot:
    169     int     BIOS_BOOT_FAILURE_INTERRUPT_18h ; Never returns     
     164    int     BIOS_BOOT_FAILURE_INTERRUPT_18h ; Never returns
     165
     166
     167;--------------------------------------------------------------------
     168; TryToBootFromPrimaryOrSecondaryBootDevice
     169;   Parameters
     170;       DL:     Drive selected as boot device
     171;       DS:     RAMVARS segment
     172;       ES:     BDA and interrupt vector segment (zero)
     173;   Returns:
     174;       DL:     Drive to boot from (translated, 00h or 80h)
     175;       CF:     Set for Boot Sector Boot
     176;               Clear for ROM Boot
     177;       ES:BX:  (if CF set) Ptr to boot sector
     178;   Corrupts registers:
     179;       AX, CX, DH, SI, DI, (DL if failed to read boot sector)
     180;--------------------------------------------------------------------
     181TryToBootFromPrimaryOrSecondaryBootDevice:
     182    call    DriveXlate_SetDriveToSwap
     183    call    DriveXlate_ToOrBack
     184    jmp     BootSector_TryToLoadFromDriveDL
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectDrives.asm

    r386 r392  
    5555    jcxz    .AddHardDisks                   ; Set to zero on .ideVarsSerialAuto iteration (if any)
    5656%endif
    57 
    5857    loop    .DriveDetectLoop
    5958
     
    155154StartDetectionWithDriveSelectByteInBHandStringInCX:
    156155    call    DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP
     156    call    HotkeyBar_UpdateDuringDriveDetection
    157157    ; Fall to .ReadAtaInfoFromHardDisk
    158158
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectPrint.asm

    r386 r392  
    2222
    2323;--------------------------------------------------------------------
    24 ; BootMenuPrint_InitializeDisplayContext
    25 ;   Parameters:
    26 ;       Nothing
    27 ;   Returns:
    28 ;       Nothing
    29 ;   Corrupts registers:
    30 ;       AX, DI
    31 ;--------------------------------------------------------------------
    32 BootMenuPrint_InitializeDisplayContext:
    33     CALL_DISPLAY_LIBRARY InitializeDisplayContext
     24; DetectPrint_InitializeDisplayContext
     25;   Parameters:
     26;       Nothing
     27;   Returns:
     28;       Nothing
     29;   Corrupts registers:
     30;       AX, DI
     31;--------------------------------------------------------------------
     32DetectPrint_InitializeDisplayContext:
     33    CALL_DISPLAY_LIBRARY    InitializeDisplayContext
     34    ret
     35
     36
     37;--------------------------------------------------------------------
     38; DetectPrint_GetSoftwareCoordinatesToAX
     39;   Parameters:
     40;       Nothing
     41;   Returns:
     42;       Nothing
     43;   Corrupts registers:
     44;       AX, DI
     45;--------------------------------------------------------------------
     46DetectPrint_GetSoftwareCoordinatesToAX:
     47    CALL_DISPLAY_LIBRARY    GetSoftwareCoordinatesToAX
    3448    ret
    3549
     
    186200;       Nothing
    187201;   Corrupts registers:
    188 ;       AX, SI, DI
     202;       AX, DH, SI, DI
    189203;--------------------------------------------------------------------
    190204DetectPrint_TryToBootFromDL:
     
    192206    mov     bp, sp
    193207
    194     mov     ax, g_szHDD
    195     test    dl, dl
    196     js      SHORT .NotFDD
    197     mov     ax, g_szFDD
    198 .NotFDD:
    199     push    ax
    200 
    201     call    DriveXlate_ToOrBack
    202     push    dx                  ; Push untranslated drive number
    203     call    DriveXlate_ToOrBack
    204     push    dx                  ; Push translated drive number
     208    call    DriveXlate_ToOrBack ; DL = Untranslated Drive number
     209    mov     dh, dl
     210    call    DriveXlate_ToOrBack ; DL = Translated Drive number
     211
     212    call    HotkeyBar_ConvertDriveNumberFromDLtoDriveLetter ; DL = Translated letter
     213    xchg    dl, dh
     214    call    HotkeyBar_ConvertDriveNumberFromDLtoDriveLetter ; DL = Untranslated letter
     215    push    dx
     216    xchg    dl, dh
     217    push    dx
     218
     219    call    ConvertDriveLetterInDLtoDriveNumber ; Restore DL
    205220
    206221    mov     si, g_szTryToBoot
     
    226241    push    bp
    227242    mov     bp,sp
    228     ; Fall to BootMenuPrint_FormatCSSIfromParamsInSSBP
     243    ; Fall to DetectPrint_FormatCSSIfromParamsInSSBP
    229244
    230245;--------------------------------------------------------------------
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/FloppyDrive.asm

    r376 r392  
    125125;       AX, CX, DX, DI, ES
    126126;--------------------------------------------------------------------
     127%ifdef MODULE_BOOT_MENU
    127128FloppyDrive_GetType:
    128129    mov     ah, 08h         ; Get Drive Parameters
     
    130131    int     BIOS_DISKETTE_INTERRUPT_40h
    131132    ret
     133%endif
    132134
    133135
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm

    r376 r392  
    6969;--------------------------------------------------------------------
    7070Initialize_AndDetectDrives:
    71     call    BootMenuPrint_InitializeDisplayContext
     71    call    DetectPrint_InitializeDisplayContext
    7272    call    DetectPrint_RomFoundAtSegment
    7373    call    RamVars_Initialize
     74    call    BootVars_Initialize
    7475    call    Interrupts_InitializeInterruptVectors
    7576    call    DetectDrives_FromAllIDEControllers
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/Interrupts.asm

    r376 r392  
    6363    mov     si, Int13h_DiskFunctionsHandler     ; Interrupt handler offset
    6464    call    Interrupts_InstallHandlerToVectorInALFromCSSI
     65
     66    ; Install INT 19h handler to properly reset the system
     67    mov     al, BIOS_BOOT_LOADER_INTERRUPT_19h  ; INT 19h interrupt vector offset
     68    mov     si, Int19hReset_Handler             ; INT 19h handler to reboot the system
     69    call    Interrupts_InstallHandlerToVectorInALFromCSSI
    6570    ; Fall to .InitializeHardwareIrqHandlers
    6671
  • trunk/XTIDE_Universal_BIOS/Src/Main.asm

    r386 r392  
    3434%define EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS   ; Exclude unused library functions
    3535%ifdef MODULE_BOOT_MENU
    36     %define MENUEVENT_INLINE_OFFSETS    ; Only one menu required, save space and inline offsets
     36    %define MENUEVENT_INLINE_OFFSETS        ; Only one menu required, save space and inline offsets
    3737    %define INCLUDE_MENU_LIBRARY
    3838
    3939%else   ; If no boot menu included
    4040    %define INCLUDE_DISPLAY_LIBRARY
     41    %define INCLUDE_KEYBOARD_LIBRARY
    4142    %define INCLUDE_TIME_LIBRARY
    4243%endif
     
    5758    %include "RamVars.inc"          ; For RAMVARS struct
    5859    %include "BootVars.inc"         ; For BOOTVARS struct
     60    %include "HotkeyBar.inc"        ; For Hotkeys
    5961    %include "BootMenu.inc"         ; For Boot Menu
    6062    %include "IDE_8bit.inc"         ; For IDE 8-bit data port macros
     
    212214    %include "Interrupts.asm"       ; For Interrupt initialization
    213215    %include "RamVars.asm"          ; For RAMVARS initialization and access
     216    %include "BootVars.asm"         ; For initializing variabled used during init and boot
     217    %include "FloppyDrive.asm"      ; Floppy Drive related functions
    214218    %include "CreateDPT.asm"        ; For creating DPTs
    215219    %include "FindDPT.asm"          ; For finding DPTs
     
    220224    %include "DetectDrives.asm"     ; For detecting IDE drives
    221225    %include "DetectPrint.asm"      ; For printing drive detection strings
     226    %include "HotkeyBar.asm"        ; For hotkeys during drive detection and boot menu
    222227
    223228    ; Boot menu
     
    232237    ; Boot loader
    233238    %include "Int19h.asm"           ; For Int 19h, Boot Loader
    234     %include "FloppyDrive.asm"      ; Floppy Drive related functions
     239    %include "Int19hReset.asm"      ; INT 19h handler for proper system reset
    235240    %include "BootSector.asm"       ; For loading boot sector
    236241
  • trunk/XTIDE_Universal_BIOS/Src/Strings.asm

    r376 r392  
    7373
    7474; Boot loader strings
    75 g_szTryToBoot:          db  "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
     75g_szTryToBoot:          db  "Booting %c",ANGLE_QUOTE_RIGHT,"%c",LF,CR,NULL
    7676g_szBootSectorNotFound: db  "Boot sector "
    7777g_szNotFound:           db  "not found",LF,CR,NULL
    7878g_szReadError:          db  "Error %x!",LF,CR,NULL
     79
    7980
    8081g_szAddressingModes:
     
    143144
    144145; Boot menu bottom of screen strings
    145 g_szFDD:        db  "FDD     ",NULL
    146 g_szHDD:        db  "HDD     ",NULL
    147 g_szRomBoot:    db  "ROM Boot",NULL
    148 g_szHotkey:     db  "%A%c%c%A%s%A ",NULL
     146g_szFDD:        db  "FDD [%c]",NULL         ; "FDD [A]"
     147g_szHDD:        db  "HDD [%c]",NULL         ; "HDD [C]"
     148g_szBootMenu:   db  "%sMnu",NULL            ; "BootMnu"
     149g_szRomBoot:    db  "Rom%s",NULL            ; "RomBoot"
     150g_szBoot:       db  "Boot",NULL
     151g_szHotkey:     db  "%A%c%c%A%s%A ",NULL    ; "C»HDD [A] ", "F2BootMnu " or "F8RomBoot "
    149152
    150153; Boot Menu information strings
     
    227230;
    228231;------------------------------------------------------------------------------------------
    229 
    230 
  • trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm

    r376 r392  
    2626; GNU General Public License for more details.
    2727; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html       
    28 ;              
     28;       
    2929
    3030%ifdef MODULE_STRINGS_COMPRESSED_PRECOMPRESS
     
    128128
    129129; Boot loader strings
    130 g_szTryToBoot:          ; db    "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
    131                         ; db     42h,  6fh,  6fh,  74h,  69h,  6eh,  67h,  20h,  66h,  72h,  6fh,  6dh,  20h,  25h,  73h,  20h,  25h,  78h, 0afh,  25h,  78h,  0ah,  0dh,  00h    ; uncompressed
    132                           db     48h,  75h,  75h,  7ah,  6fh,  74h, 0edh,  6ch,  78h,  75h, 0f3h,  3eh,  20h,  39h,  24h,  39h,  1bh                                              ; compressed
     130g_szTryToBoot:          ; db    "Booting %c",ANGLE_QUOTE_RIGHT,"%c",LF,CR,NULL
     131                        ; db     42h,  6fh,  6fh,  74h,  69h,  6eh,  67h,  20h,  25h,  63h, 0afh,  25h,  63h,  0ah,  0dh,  00h    ; uncompressed
     132                          db     48h,  75h,  75h,  7ah,  6fh,  74h, 0edh,  35h,  24h,  35h,  1bh                                  ; compressed
    133133
    134134g_szBootSectorNotFound: ; db    "Boot sector "
     
    143143                        ; db     45h,  72h,  72h,  6fh,  72h,  20h,  25h,  78h,  21h,  0ah,  0dh,  00h    ; uncompressed
    144144                          db     4bh,  78h,  78h,  75h, 0f8h,  39h,  25h,  1bh                            ; compressed
     145
    145146
    146147
     
    249250
    250251; Boot menu bottom of screen strings
    251 g_szFDD:        ; db    "FDD     ",NULL
    252                 ; db     46h,  44h,  44h,  20h,  20h,  20h,  20h,  20h,  00h    ; uncompressed
    253                   db     4ch,  4ah, 0cah,  20h,  20h,  20h,  00h                ; compressed
    254 
    255 g_szHDD:        ; db    "HDD     ",NULL
    256                 ; db     48h,  44h,  44h,  20h,  20h,  20h,  20h,  20h,  00h    ; uncompressed
    257                   db     4eh,  4ah, 0cah,  20h,  20h,  20h,  00h                ; compressed
    258 
    259 g_szRomBoot:    ; db    "ROM Boot",NULL
    260                 ; db     52h,  4fh,  4dh,  20h,  42h,  6fh,  6fh,  74h,  00h    ; uncompressed
    261                   db     58h,  55h, 0d3h,  48h,  75h,  75h, 0bah                ; compressed
    262 
    263 g_szHotkey:     ; db    "%A%c%c%A%s%A ",NULL
     252g_szFDD:        ; db    "FDD [%c]",NULL         ; "FDD [A]"
     253                ; db     46h,  44h,  44h,  20h,  5bh,  25h,  63h,  5dh,  00h    ; uncompressed
     254                  db     4ch,  4ah, 0cah,  61h,  35h, 0a3h                      ; compressed
     255
     256g_szHDD:        ; db    "HDD [%c]",NULL         ; "HDD [C]"
     257                ; db     48h,  44h,  44h,  20h,  5bh,  25h,  63h,  5dh,  00h    ; uncompressed
     258                  db     4eh,  4ah, 0cah,  61h,  35h, 0a3h                      ; compressed
     259
     260g_szBootMenu:   ; db    "%sMnu",NULL            ; "BootMnu"
     261                ; db     25h,  73h,  4dh,  6eh,  75h,  00h    ; uncompressed
     262                  db     3eh,  53h,  74h, 0bbh                ; compressed
     263
     264g_szRomBoot:    ; db    "Rom%s",NULL            ; "RomBoot"
     265                ; db     52h,  6fh,  6dh,  25h,  73h,  00h    ; uncompressed
     266                  db     58h,  75h,  73h,  1eh                ; compressed
     267
     268g_szBoot:       ; db    "Boot",NULL
     269                ; db     42h,  6fh,  6fh,  74h,  00h    ; uncompressed
     270                  db     48h,  75h,  75h, 0bah          ; compressed
     271
     272g_szHotkey:     ; db    "%A%c%c%A%s%A ",NULL    ; "C»HDD [A] ", "F2BootMnu " or "F8RomBoot "
    264273                ; db     25h,  41h,  25h,  63h,  25h,  63h,  25h,  41h,  25h,  73h,  25h,  41h,  20h,  00h    ; uncompressed
    265274                  db     3dh,  35h,  35h,  3dh,  3eh,  3dh,  00h                                              ; compressed
     
    371380; End of StringsCompress.pl information
    372381;
    373 ;------------------------------------------------------------------------------------------
    374 
    375382;;; end of input stream
    376383
     
    455462;; translated usage stats
    456463;; 33:1
    457 ;; 32:31
     464;; 32:22
    458465;; 181:1
    459466;; 53:2
     
    481488;; 2-u:1
    482489;; 5-u:2
    483 ;; x:7
    484 ;; s:12
     490;; x:5
     491;; s:13
    485492;; 5-x:1
    486493;; nl:8
    487494;; 2-I:1
    488 ;; c:5
     495;; c:9
    489496;; u:6
    490497;; z:1
     
    513520;; 77,M:4
    514521;; 78,N:1
    515 ;; 79,O:2
     522;; 79,O:1
    516523;; 80,P:2
    517524;; 81,Q:1
     
    525532;; 89,Y:
    526533;; 90,Z:
    527 ;; 91,[:
     534;; 91,[:2
    528535;; 92,\:
    529 ;; 93,]:
     536;; 93,]:2
    530537;; 94,^:
    531538;; 95,_:
     
    536543;; 100,d:6
    537544;; 101,e:15
    538 ;; 102,f:2
     545;; 102,f:1
    539546;; 103,g:2
    540547;; 104,h:
     
    544551;; 108,l:5
    545552;; 109,m:1
    546 ;; 110,n:10
     553;; 110,n:11
    547554;; 111,o:17
    548555;; 112,p:3
    549556;; 113,q:
    550 ;; 114,r:12
     557;; 114,r:11
    551558;; 115,s:7
    552559;; 116,t:12
    553 ;; 117,u:3
     560;; 117,u:4
    554561;; 118,v:3
    555562;; 119,w:1
    556563;; 120,x:
    557564;; 121,y:2
    558 ;; alphabet used count: 42
     565;; alphabet used count: 44
    559566%endif ; STRINGSCOMPRESSED_TABLES
    560567
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/RamVars.asm

    r376 r392  
    146146;       CX
    147147;--------------------------------------------------------------------
    148 ALIGN JUMP_ALIGN
     148%ifdef MODULE_BOOT_MENU
    149149RamVars_GetHardDiskCountFromBDAtoAX:
    150150    call    RamVars_GetCountOfKnownDrivesToAX
     
    155155    pop     ds
    156156    ret
     157%endif
     158
    157159
    158160;--------------------------------------------------------------------
  • trunk/XTIDE_Universal_BIOS/makefile

    r389 r392  
    5454HEADERS += Inc/Controllers/
    5555HEADERS += Src/
    56 HEADERS += Src/Boot/
    5756HEADERS += Src/Handlers/
    5857HEADERS += Src/Handlers/Int13h/
    5958HEADERS += Src/Handlers/Int13h/EBIOS/
    6059HEADERS += Src/Handlers/Int13h/Tools/
     60HEADERS += Src/Handlers/Int19h/
    6161HEADERS += Src/Device/
    6262HEADERS += Src/Device/IDE/
     
    6464HEADERS += Src/Device/Serial/
    6565HEADERS += Src/Initialization/
     66HEADERS += Src/Initialization/AdvancedAta/
     67HEADERS += Src/Menus/
     68HEADERS += Src/Menus/BootMenu/
    6669HEADERS += Src/Libraries/
    6770HEADERS += Src/VariablesAndDPTs/
     
    8689# Assembler preprocessor defines.                               #
    8790#################################################################
    88 DEFINES_COMMON = MODULE_BOOT_MENU MODULE_EBIOS MODULE_STRINGS_COMPRESSED
     91DEFINES_COMMON = MODULE_STRINGS_COMPRESSED MODULE_EBIOS
    8992
    9093DEFINES_XT = ELIMINATE_CGA_SNOW MODULE_SERIAL MODULE_SERIAL_FLOPPY
    91 DEFINES_XTPLUS = ELIMINATE_CGA_SNOW USE_186 MODULE_SERIAL MODULE_SERIAL_FLOPPY
    92 DEFINES_AT = USE_286 USE_AT MODULE_SERIAL MODULE_SERIAL_FLOPPY
    93 
    94 DEFINES_XT_LARGE = $(DEFINES_XT) MODULE_JRIDE MODULE_ADVANCED_ATA
    95 DEFINES_XTPLUS_LARGE = $(DEFINES_XTPLUS) MODULE_JRIDE MODULE_ADVANCED_ATA
    96 DEFINES_AT_LARGE = $(DEFINES_AT) MODULE_JRIDE MODULE_ADVANCED_ATA
     94DEFINES_XTPLUS = USE_186 ELIMINATE_CGA_SNOW MODULE_SERIAL MODULE_SERIAL_FLOPPY
     95DEFINES_AT = USE_AT USE_286 MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_ADVANCED_ATA
     96
     97DEFINES_XT_LARGE = $(DEFINES_XT) MODULE_BOOT_MENU MODULE_JRIDE MODULE_ADVANCED_ATA
     98DEFINES_XTPLUS_LARGE = $(DEFINES_XTPLUS) MODULE_BOOT_MENU MODULE_JRIDE MODULE_ADVANCED_ATA
     99DEFINES_AT_LARGE = $(DEFINES_AT) MODULE_BOOT_MENU MODULE_JRIDE MODULE_ADVANCED_ATA
    97100
    98101DEFINES_JRIDE_8K = ELIMINATE_CGA_SNOW MODULE_JRIDE
    99 DEFINES_386_8K = USE_386 USE_AT MODULE_ADVANCED_ATA
     102DEFINES_386_8K = USE_AT USE_386 MODULE_ADVANCED_ATA
    100103
    101104
Note: See TracChangeset for help on using the changeset viewer.