Changeset 638 in xtideuniversalbios


Ignore:
Timestamp:
Jun 9, 2026, 10:36:36 AM (7 weeks ago)
Author:
Krister Nordvall
Message:

Changes:

  • Created MODULE_ATAPI which adds a very simplistic detection of ATAPI devices. This is WIP so it's not included in any builds because I'm not able to test it and the chances of it working are slim to none.
  • The ATAID validation failing for a drive was very confusing because the BIOS would just say "not found" as if the drive had not been detected at all. This has now been changed to "failed validation" instead. This doesn't actually change anything for users of the official builds since the NO_ATAID_VALIDATION define is still enabled for these builds due to several models of WD Caviar drives being incompatible with (failing) the validation check.
  • Added a special set of defines to the BIOS makefile specifically for use with 'make strings' - it used to depend on the set of defines for the Large AT-build. This allows adding new defines/build options as needed to ensure compression of all strings that should be compressed without otherwise affecting any of the BIOS builds.
  • Another major change to the BIOS makefile is that BIOS build sizes are no longer sent as parameters to NASM or checksum.pl. NASM will compute BIOS_SIZE and CNT_ROM_BLOCKS itself which means that all BIOS builds are now always made with the minimum possible size regardless of their designation as Tiny, Small or Large builds.
  • This also required changes to checksum.pl since it expected the size as the second parameter - it will now extract the size from the BIOS binary instead. A couple of bugs was also fixed; 1) the error handling for opening the BIOS files did not work (at least not on my system) - the "file not found" message could not be triggered. 2) the compatibility fix for 3Com 3C503 cards would not be applied if the BIOS file size was exactly 8189 bytes.
  • Added a proper ROMVARS flag for MODULE_MFM_COMPATIBILITY (FLG_ROMVARS_MODULE_MFM_COMPATIBILITY) and made the visibility of the 'Remove other hard drives' Boot settings menu item depend on it. If this module is included in the BIOS build then the menu item will not be available simply because they can't be used together. Also added a check to 'Auto Configure' to warn users when using BIOS builds with this module included if it conflicts with the need for having 'Remove other hard drives' set to YES.
  • The visibility of the Color Theme menu item now depends on the Display Mode setting in addition to MODULE_BOOT_MENU being included in the BIOS build. Selecting the Monochrome mode or one of the Black & White modes will hide it.
  • Added five new color themes.
  • Removed a sentence in g_szHelpBootTimeout stating that the Boot Menu timeout can be disabled by setting it to zero when in fact doing so is not even possible.
  • BIOS builds made with USE_386 but without USE_AT will now identify themselves as (386), not (XT+).
  • The macros in IdeIO.inc handling IDE registers (OUTPUT_AL_TO_IDE_REGISTER, OUTPUT_AL_TO_IDE_CONTROL_BLOCK_REGISTER and INPUT_TO_AL_FROM_IDE_REGISTER) has been extended to also accept DX and DL as parameters.
  • A few minor optimizations and fixes.
Location:
trunk
Files:
22 edited

Legend:

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

    r592 r638  
    44;
    55; XTIDE Universal BIOS and Associated Tools
    6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2013 by XTIDE Universal BIOS Team.
     6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    77;
    88; This program is free software; you can redistribute it and/or modify
     
    7777DisplayCursor_SetCoordinatesFromAX:
    7878    xchg    dx, ax
    79     mov     ax, [VIDEO_BDA.wColumns]        ; Column count, 40 or 80
     79    mov     al, [VIDEO_BDA.wColumns]        ; Column count, 40 or 80
    8080    mul     dh                              ; AX = Column count * row index
    8181    xor     dh, dh
  • trunk/Assembly_Library/Src/Menu/MenuAttributes.asm

    r636 r638  
    107107    jc      SHORT .LoadColorAttribute
    108108
     109%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    109110%if (rgcColorAttributes-$$) & 0FF00h = (rgcMonochromeAttributes-$$) & 0FF00h    ; Are the base addresses of all three strucs on the same page?
    110111%ifndef ORIGIN
     
    143144.LoadAttributeAndReturn:
    144145%endif
     146%endif ; CHECK_FOR_UNUSED_ENTRYPOINTS
    145147    cs lodsb                            ; Load from [CS:SI] to AL
    146148
  • trunk/Assembly_Library/Src/Menu/MenuCharOut.asm

    r632 r638  
    44;
    55; XTIDE Universal BIOS and Associated Tools
    6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2025 by XTIDE Universal BIOS Team.
     6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    77;
    88; This program is free software; you can redistribute it and/or modify
     
    5050MenuCharOut_MenuTeletypeOutput:
    5151    cmp     al, CR
    52     je      SHORT PrintCRandAdjustOffsetForStartOfLine
     52    je      SHORT PrintCRandAdjustOffsetForStartOfLine.CRinAL
    5353    jmp     DisplayCharOut_TeletypeOutputWithAttribute
    5454
     
    7777PrintCRandAdjustOffsetForStartOfLine:
    7878    mov     al, CR
     79.CRinAL:
    7980    call    DisplayCharOut_BiosTeletypeOutput
    8081    eMOVZX  ax, BYTE [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.wCharOutParam]
  • trunk/Tools/checksum.pl

    r568 r638  
    66#!perl
    77#
    8 # Add checksum byte to ROM image
     8# Add checksum byte(s) to PC Option ROM image
    99#
    10 # Use a size of 0 to skip this script entirely (file is not modified)
    11 #
    12 # On Windows, this file can be renamed to a batch file and invoked directly (for example, "c:\>checksum file size")
     10# On Windows, this file can be renamed to a batch file and invoked directly (for example, "C:\>checksum filename")
    1311#
    1412
    1513#
    1614# XTIDE Universal BIOS and Associated Tools
    17 # Copyright (C) 2009-2010 by Tomi Tilli, 2011-2013 by XTIDE Universal BIOS Team.
     15# Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    1816#
    1917# This program is free software; you can redistribute it and/or modify
     
    2927#
    3028
    31 ($ARGV[0] ne "" && $ARGV[1] ne "") || die "usage: checksum filename size\n";
     29$ARGV[0] ne "" || die "usage: checksum filename\n";
    3230
    33 $desiredSize = int($ARGV[1]);
    34 
    35 if( $desiredSize == 0 )
     31$ok = open ( FILE, "+<".$ARGV[0] );
     32if( $ok == 0 )
    3633{
    37     exit( 0 );
     34    die "ERROR: failed to open ".$ARGV[0]."\n";
    3835}
    3936
    40 open FILE, "+<".$ARGV[0] || die "file not found\n";
    4137binmode FILE;
    42 $cs = 0;
    43 $last = 0;
    44 $bytes = 0;
     38seek( FILE, 2, 0 );
     39read( FILE, $biosSize, 1 );
     40$biosSize = ord($biosSize) << 9;
     41if( $biosSize & 2047 )
     42{
     43    die "ERROR: image is not a valid PC Option ROM BIOS\n";
     44}
     45
     46seek( FILE, 0, 0 );
    4547while( ($n = read( FILE, $d, 1 )) != 0 )
    4648{
    47     $cs = $cs + ord($d);
    48     $cs = $cs % 256;
    49     $bytes = $bytes + 1;
     49    $cs = ($cs + ord($d)) & 255;
     50    $bytes++;
    5051}
    5152$oldBytes = $bytes;
    5253
    53 if( $bytes > $desiredSize - 1 )
     54if( $bytes > $biosSize - 1 )
    5455{
    55     die "ERROR: image is bigger than ".($desiredSize-1).": $bytes\n";
     56    die "ERROR: image is bigger than ".($biosSize-1).": $bytes\n";
    5657}
    5758
    5859$fixzero = chr(0);
     60$fixl = ($cs == 0 ? 0 : 256 - $cs);
    5961
    6062#
    6163# Compatibility fix for 3Com 3C503 cards. They use 8 KB ROMs and return 8080h as the last word of the ROM.
    6264#
    63 if( $desiredSize == 8192 ) {
    64     if( $bytes < $desiredSize - 3 ) {
    65         while( $bytes < $desiredSize - 3 ) {
     65if( $biosSize == 8192 ) {
     66    if( $bytes <= $biosSize - 3 ) {
     67        while( $bytes < $biosSize - 3 ) {
    6668            print FILE $fixzero;
    6769            $bytes++;
    6870        }
    69         $fixl = ($cs == 0 ? 0 : 256 - $cs);
    7071        $fix = chr($fixl).chr($cs);
    7172        print FILE $fix;
    7273        $bytes += 2;
     74    } elsif ( $bytes < $biosSize - 1 ) {
     75        print "Warning! ".$ARGV[0]." cannot be used on a 3Com 3C503 card unless it can be checksummed manually!\n";
    7376    } else {
    7477        print "Warning! ".$ARGV[0]." cannot be used on a 3Com 3C503 card!\n";
     
    7679}
    7780
    78 while( $bytes < $desiredSize - 1 )
     81while( $bytes < $biosSize - 1 )
    7982{
    8083    print FILE $fixzero;
     
    8285}
    8386
    84 $fixl = ($cs == 0 ? 0 : 256 - $cs);
    8587$fix = chr($fixl);
    8688print FILE $fix;
     
    9193binmode FILE;
    9294$cs = 0;
    93 $newBytes = 0;
    9495while( ($n = read( FILE, $d, 1 )) != 0 )
    9596{
    96     $cs = $cs + ord($d);
    97     $cs = $cs % 256;
     97    $cs = ($cs + ord($d)) & 255;
    9898    $newBytes++;
    9999}
    100 $cs == 0 || die "Checksum verification failed\n";
     100$cs == 0 || die "ERROR: checksum verification failed\n";
    101101
    102102print "checksum: ".$ARGV[0].": $oldBytes bytes before, $newBytes bytes after\n";
  • trunk/XTIDE_Universal_BIOS/Inc/IdeIO.inc

    r632 r638  
    44;
    55; XTIDE Universal BIOS and Associated Tools
    6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2025 by XTIDE Universal BIOS Team.
     6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    77;
    88; This program is free software; you can redistribute it and/or modify
     
    2626;   Parameters:
    2727;       AL:     Byte to output
    28 ;       %1:     IDE Register                (OUTPUT_AL_TO_IDE_REGISTER)
     28;       %1:     DX, DL or
     29;               IDE Register                (OUTPUT_AL_TO_IDE_REGISTER)
    2930;               IDE Control Block Register  (OUTPUT_AL_TO_IDE_CONTROL_BLOCK_REGISTER)
    3031;       DS:DI:  Ptr to DPT (in RAMVARS segment)
     
    4041        %ifndef previous_parameter
    4142            %ifnidni %1, dx
    42                 mov     dx, %1
     43                %ifidni %1, dl
     44                    xor     dh, dh
     45                %else
     46                    mov     dx, %1
     47                %endif
    4348            %endif
    4449            add     dx, [di+DPT.wBasePort]
     
    5055        %else
    5156            %ifnidni %1, dx
    52                 mov     dx, %1
     57                %ifidni %1, dl
     58                    xor     dh, dh
     59                %else
     60                    mov     dx, %1
     61                %endif
    5362            %endif
    5463            add     dx, [di+DPT.wBasePort]
     
    5968        %undef previous_parameter
    6069        %ifnidni %1, dx
    61             mov     dx, %1
     70            %ifidni %1, dl
     71                xor     dh, dh
     72            %else
     73                mov     dx, %1
     74            %endif
    6275        %endif
    6376        add     dx, [di+DPT.wBasePort]
     
    6780%else   ; Register translations required
    6881
    69     %ifnidni %1, dl
    70         mov     dl, %1
     82    %ifnidni %1, dx
     83        %ifnidni %1, dl
     84            mov     dl, %1
     85        %endif
    7186    %endif
    7287    call    IdeIO_OutputALtoIdeRegisterInDL
     
    8398            eMOVZX  bx, BYTE [di+DPT.bIdevarsOffset]
    8499            %ifnidni %1, dx
    85                 mov     dx, %1
     100                %ifidni %1, dl
     101                    xor     dh, dh
     102                %else
     103                    mov     dx, %1
     104                %endif
    86105            %endif
    87106            add     dx, [cs:bx+IDEVARS.wControlBlockPort]
     
    94113            eMOVZX  bx, BYTE [di+DPT.bIdevarsOffset]
    95114            %ifnidni %1, dx
    96                 mov     dx, %1
     115                %ifidni %1, dl
     116                    xor     dh, dh
     117                %else
     118                    mov     dx, %1
     119                %endif
    97120            %endif
    98121            add     dx, [cs:bx+IDEVARS.wControlBlockPort]
     
    104127        eMOVZX  bx, BYTE [di+DPT.bIdevarsOffset]
    105128        %ifnidni %1, dx
    106             mov     dx, %1
     129            %ifidni %1, dl
     130                xor     dh, dh
     131            %else
     132                mov     dx, %1
     133            %endif
    107134        %endif
    108135        add     dx, [cs:bx+IDEVARS.wControlBlockPort]
     
    112139%else   ; Register translations required
    113140
    114     %ifnidni %1, dl
    115         mov     dl, %1
     141    %ifnidni %1, dx
     142        %ifnidni %1, dl
     143            mov     dl, %1
     144        %endif
    116145    %endif
    117146    call    IdeIO_OutputALtoIdeControlBlockRegisterInDL
     
    124153; INPUT_TO_AL_FROM_IDE_REGISTER
    125154;   Parameters:
    126 ;       %1:     IDE Register
     155;       %1:     DX, DL or IDE Register
    127156;       DS:DI:  Ptr to DPT (in RAMVARS segment)
    128157;   Returns:
     
    135164
    136165    %ifnidni %1, dx
    137         mov     dx, %1
     166        %ifidni %1, dl
     167            xor     dh, dh
     168        %else
     169            mov     dx, %1
     170        %endif
    138171    %endif
    139172    add     dx, [di+DPT.wBasePort]
     
    142175%else   ; Register translations required
    143176
    144     %ifnidni %1, dl
    145         mov     dl, %1
     177    %ifnidni %1, dx
     178        %ifnidni %1, dl
     179            mov     dl, %1
     180        %endif
    146181    %endif
    147182    call    IdeIO_InputToALfromIdeRegisterInDL
  • trunk/XTIDE_Universal_BIOS/Inc/IdeRegisters.inc

    r618 r638  
    44;
    55; XTIDE Universal BIOS and Associated Tools
    6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2013 by XTIDE Universal BIOS Team.
     6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    77;
    88; This program is free software; you can redistribute it and/or modify
     
    100100COMMAND_IDLE                            EQU     0E3h
    101101
    102 
    103102; Subcommands for COMMAND_SET_FEATURES
    104103FEATURE_ENABLE_8BIT_PIO_TRANSFER_MODE       EQU     01h     ; CFA feature set only
     
    113112    PIO_FLOW_CONTROL_MODE_xxx               EQU     (1<<3)  ; Bits 2...0 hold the PIO mode
    114113
     114; ATAPI device specific stuff (should probably be in its own include file)
     115ATAPI_SIGNATURE                             EQU     0EB14h  ; Read from LBA_HIGH_REGISTER and LBA_MIDDLE_REGISTER
    115116
    116117%endif ; IDEREGISTERS_INC
  • trunk/XTIDE_Universal_BIOS/Inc/ModuleDependency.inc

    r625 r638  
    44;
    55; XTIDE Universal BIOS and Associated Tools
    6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2023 by XTIDE Universal BIOS Team.
     6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    77;
    88; This program is free software; you can redistribute it and/or modify
     
    157157%endif
    158158
    159 MASK_ROMVARS_INCLUDED_MODULES   EQU MAIN_FLG_MODULE_8BIT_IDE | MAIN_FLG_MODULE_ADVANCED_ATA | MAIN_FLG_MODULE_BOOT_MENU | MAIN_FLG_MODULE_EBIOS | MAIN_FLG_MODULE_HOTKEYS | MAIN_FLG_MODULE_IRQ | MAIN_FLG_MODULE_SERIAL | MAIN_FLG_MODULE_SERIAL_FLOPPY | MAIN_FLG_MODULE_STRINGS_COMPRESSED | MAIN_FLG_MODULE_POWER_MANAGEMENT | MAIN_FLG_MODULE_8BIT_IDE_ADVANCED
     159%ifdef MODULE_MFM_COMPATIBILITY
     160    MAIN_FLG_MODULE_MFM_COMPATIBILITY   EQU FLG_ROMVARS_MODULE_MFM_COMPATIBILITY
     161%else
     162    MAIN_FLG_MODULE_MFM_COMPATIBILITY   EQU 0
     163%endif
     164
     165MASK_ROMVARS_INCLUDED_MODULES   EQU MAIN_FLG_MODULE_8BIT_IDE | MAIN_FLG_MODULE_ADVANCED_ATA | MAIN_FLG_MODULE_BOOT_MENU | MAIN_FLG_MODULE_EBIOS | MAIN_FLG_MODULE_HOTKEYS | MAIN_FLG_MODULE_IRQ | MAIN_FLG_MODULE_SERIAL | MAIN_FLG_MODULE_SERIAL_FLOPPY | MAIN_FLG_MODULE_STRINGS_COMPRESSED | MAIN_FLG_MODULE_POWER_MANAGEMENT | MAIN_FLG_MODULE_8BIT_IDE_ADVANCED | MAIN_FLG_MODULE_MFM_COMPATIBILITY
  • trunk/XTIDE_Universal_BIOS/Inc/Revision.inc

    r637 r638  
    1 637
     1638
  • trunk/XTIDE_Universal_BIOS/Inc/RomVars.inc

    r633 r638  
    55;
    66; XTIDE Universal BIOS and Associated Tools
    7 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2025 by XTIDE Universal BIOS Team.
     7; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    88;
    99; This program is free software; you can redistribute it and/or modify
     
    198198; Here in case the configuration needs to know functionality is present. Note! Changing the order/location of these flags
    199199; also requires changes elsewhere as they are usually tested using byte-accesses for efficiency.
     200FLG_ROMVARS_MODULE_MFM_COMPATIBILITY    EQU (1<<4)
    200201FLG_ROMVARS_MODULE_POWER_MANAGEMENT     EQU (1<<5)
    201202FLG_ROMVARS_MODULE_8BIT_IDE             EQU (1<<6)
     
    203204FLG_ROMVARS_MODULE_ADVANCED_ATA         EQU (1<<8)
    204205FLG_ROMVARS_MODULE_BOOT_MENU            EQU (1<<9)
    205 FLG_ROMVARS_MODULE_EBIOS                EQU (1<<10)
     206FLG_ROMVARS_MODULE_EBIOS                EQU (1<<10) ; Currently unused
    206207FLG_ROMVARS_MODULE_HOTKEYS              EQU (1<<11)
    207208FLG_ROMVARS_MODULE_IRQ                  EQU (1<<12)
    208209FLG_ROMVARS_MODULE_SERIAL               EQU (1<<13)
    209 FLG_ROMVARS_MODULE_SERIAL_FLOPPY        EQU (1<<14)
    210 FLG_ROMVARS_MODULE_STRINGS_COMPRESSED   EQU (1<<15)
     210FLG_ROMVARS_MODULE_SERIAL_FLOPPY        EQU (1<<14) ; Currently unused
     211FLG_ROMVARS_MODULE_STRINGS_COMPRESSED   EQU (1<<15) ; Currently unused
    211212
    212213
  • trunk/XTIDE_Universal_BIOS/Inc/Version.inc

    r633 r638  
    44;
    55; XTIDE Universal BIOS and Associated Tools
    6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2025 by XTIDE Universal BIOS Team.
     6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    77;
    88; This program is free software; you can redistribute it and/or modify
     
    1919
    2020; Flash signature revisions:
     21; XUB212    Added a proper ROMVARS flag for MODULE_MFM_COMPATIBILITY (FLG_ROMVARS_MODULE_MFM_COMPATIBILITY).
     22;           Added 5 new color themes.
    2123; XUB211    Added device type DEVICE_8BIT_JUKO_D16X
    2224; XUB210    Moved pColorTheme so it's not copied when loading old settings from EEPROM.
     
    4446        %define TITLE_STRING_END    "(AT)=-"
    4547    %endif
     48%elifdef USE_386
     49    %define TITLE_STRING_END    "(386)=-"
    4650%elifdef USE_186
    4751    %define TITLE_STRING_END    "(XT+)=-"
     
    5761; on the same line, either before or after. In fact, do not even put a preceding label on the same line!
    5862%define BUILD_DATE_STRING       "(",__DATE__,")"
    59 %define FLASH_SIGNATURE         "XUB211"    ; Also known as the ROMVARS version. Do not terminate with NULL.
     63%define FLASH_SIGNATURE         "XUB212"    ; Also known as the ROMVARS version. Do not terminate with NULL.
    6064
    6165
  • trunk/XTIDE_Universal_BIOS/Src/Device/Device.asm

    r621 r638  
    44;
    55; XTIDE Universal BIOS and Associated Tools
    6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2013 by XTIDE Universal BIOS Team.
     6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    77;
    88; This program is free software; you can redistribute it and/or modify
     
    182182;--------------------------------------------------------------------
    183183; Device_ReadLBAlowRegisterToAL
     184;
    184185; Returns LBA low register / Sector number register contents.
    185186; Note that this returns valid value only after transfer command (read/write/verify)
    186187; has stopped to an error. Do not call this otherwise.
     188;
    187189;   Parameters:
    188190;       DS:DI:  Ptr to DPT (in RAMVARS segment)
     
    190192;       AL:     Byte read from the device register
    191193;   Corrupts registers:
    192 ;       BX, DX
     194;       BX, DX (only DX if MODULE_ATAPI is included)
    193195;--------------------------------------------------------------------
    194196;%ifdef MODULE_SERIAL   ; IDE + Serial
  • trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeCommand.asm

    r630 r638  
    44;
    55; XTIDE Universal BIOS and Associated Tools
    6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2024 by XTIDE Universal BIOS Team.
     6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    77;
    88; This program is free software; you can redistribute it and/or modify
     
    7979;   Returns:
    8080;       AH:     INT 13h Error Code
    81 ;       CF:     Cleared if success, Set if error
     81;       CF:     Cleared if success, Set if error or ATAPI device detected
    8282;   Corrupts registers:
    8383;       AL, BX, CX, DX, SI, DI, ES
     
    9292    mov     BYTE [di+DPT_ATA.bBlockSize], 1 ; Block = 1 sector
    9393
     94%ifdef MODULE_ATAPI
     95    push    dx
     96    mov     dl, LBA_HIGH_REGISTER
     97    call    IdeCommand_ReadIdeRegisterInDLtoAL
     98    mov     ah, al
     99    mov     dl, LBA_MIDDLE_REGISTER
     100    call    IdeCommand_ReadIdeRegisterInDLtoAL
     101    pop     dx
     102    cmp     ax, ATAPI_SIGNATURE
     103    stc
     104    je      SHORT .AtapiDeviceDetected
     105%endif
     106
    94107    ; Wait until drive motors have reached full speed
    95108    cmp     bp, BYTE ROMVARS.ideVars0   ; First controller?
     
    128141    lea     sp, [bp+SIZE_OF_IDEPACK_WITHOUT_INTPACK]    ; This assumes BP hasn't changed between Idepack_FakeToSSBP and here
    129142    pop     bp
     143.AtapiDeviceDetected:
    130144    ret
    131145
     
    296310;--------------------------------------------------------------------
    297311; IdeCommand_ReadLBAlowRegisterToAL
     312;
    298313; Returns LBA low register / Sector number register contents.
    299314; Note that this returns valid value only after transfer command (read/write/verify)
    300315; has stopped to an error. Do not call this otherwise.
     316;
    301317;   Parameters:
    302318;       DS:DI:  Ptr to DPT (in RAMVARS segment)
     
    304320;       AL:     Byte read from the register
    305321;   Corrupts registers:
    306 ;       BX, DX
     322;       BX, DX (only DX if MODULE_ATAPI is included)
    307323;--------------------------------------------------------------------
    308324ALIGN JUMP_ALIGN
     
    310326    ; HOB bit (defined in 48-bit address feature set) should be zero by default
    311327    ; so we get the correct value for CHS, LBA28 and LBA48 drives and commands
     328%ifndef MODULE_ATAPI
    312329    INPUT_TO_AL_FROM_IDE_REGISTER   LBA_LOW_REGISTER
    313330    ret
     331%else
     332    mov     dl, LBA_LOW_REGISTER
     333    ; Fall to IdeCommand_ReadIdeRegisterInDLtoAL
     334
     335;--------------------------------------------------------------------
     336; IdeCommand_ReadIdeRegisterInDLtoAL
     337;
     338;   Parameters:
     339;       DL:     IDE register to read
     340;       DS:DI:  Ptr to DPT (in RAMVARS segment)
     341;   Returns:
     342;       AL:     Byte read from the register
     343;   Corrupts registers:
     344;       DX
     345;--------------------------------------------------------------------
     346ALIGN JUMP_ALIGN
     347IdeCommand_ReadIdeRegisterInDLtoAL:
     348    push    bx
     349    INPUT_TO_AL_FROM_IDE_REGISTER   dl
     350    pop     bx
     351    ret
     352%endif ; MODULE_ATAPI
     353
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectDrives.asm

    r614 r638  
    44;
    55; XTIDE Universal BIOS and Associated Tools
    6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2013 by XTIDE Universal BIOS Team.
     6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    77;
    88; This program is free software; you can redistribute it and/or modify
     
    151151    mov     al, [es:BDA.bHDCount]
    152152%ifndef MODULE_MFM_COMPATIBILITY
    153     ; This is excluded when MODULE_MFM_COMPATIBILITY is included because it doesn't make sense to use both at the same time anyway.
    154     ; Note that the option to "Remove other hard drives" is still visible in XTIDECFG.COM for builds including MODULE_MFM_COMPATIBILITY.
    155     ; Changing that option just won't do anything. We might want to remove the option for builds that contain MODULE_MFM_COMPATIBILITY
    156     ; but that would require a ROMVARS flag that is probably better spent on other things.
     153    ; This is excluded when MODULE_MFM_COMPATIBILITY is included because it doesn't make sense to use both at the same time.
    157154    test    BYTE [cs:ROMVARS.wFlags], FLG_ROMVARS_CLEAR_BDA_HD_COUNT    ; Clears CF
    158155    jz      SHORT .ContinueInitialization
     
    263260
    264261.ReadAtapiInfoFromDrive:                    ; Not yet implemented
     262%ifdef MODULE_ATAPI
     263    cmp     ax, ATAPI_SIGNATURE
     264    je      SHORT DetectDrives_AtapiDeviceFound
     265%endif
    265266    ;call   ReadAtapiInfoFromDrive          ; Assume CD-ROM
    266267    ;jnc    SHORT _CreateBiosTablesForCDROM
    267 
    268     ;jmp    short DetectDrives_DriveNotFound
    269 ;;; fall-through instead of previous jmp instruction
     268    ; Fall to DetectDrives_DriveNotFound
     269
    270270;--------------------------------------------------------------------
    271271; DetectDrives_DriveNotFound
     272; DetectDrives_AtapiDeviceFound
     273; DetectDrives_ValidationFailed
    272274;   Parameters:
    273275;       Nothing
     
    275277;       CF:     Set (from DetectPrint_NullTerminatedStringFromCSSIandSetCF)
    276278;   Corrupts registers:
    277 ;       AX, SI
     279;       AX, SI, DI
    278280;--------------------------------------------------------------------
    279281DetectDrives_DriveNotFound:
    280282    mov     si, g_szNotFound
    281283    jmp     DetectPrint_NullTerminatedStringFromCSSIandSetCF
     284
     285%ifdef MODULE_ATAPI
     286DetectDrives_AtapiDeviceFound:
     287    mov     si, g_szAtapiDevice
     288    jmp     DetectPrint_NullTerminatedStringFromCSSIandSetCF
     289%endif
     290
     291%ifndef NO_ATAID_VALIDATION
     292DetectDrives_ValidationFailed:
     293    mov     si, g_szValidationFailed
     294    jmp     DetectPrint_NullTerminatedStringFromCSSIandSetCF
     295%endif
    282296
    283297
     
    301315    call    AtaID_VerifyFromESSI
    302316    pop     bx
    303     jnz     SHORT DetectDrives_DriveNotFound
     317    jnz     SHORT DetectDrives_ValidationFailed
    304318%endif
    305319    call    CreateDPT_FromAtaInformation
    306     jc      SHORT DetectDrives_DriveNotFound
    307320    call    DriveDetectInfo_CreateForHardDisk
    308321    jmp     SHORT DetectPrint_DriveNameFromDrvDetectInfoInESBX
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectPrint.asm

    r603 r638  
    44;
    55; XTIDE Universal BIOS and Associated Tools
    6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2013 by XTIDE Universal BIOS Team.
     6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    77;
    88; This program is free software; you can redistribute it and/or modify
     
    118118    push    dx                              ; Push low order digit, or N/A
    119119
    120     mov     si, g_szDetectOuter             ; Load SI with default wrapper string "IDE %s at %s: "
     120    mov     si, g_szDetectOuter             ; Load SI with default wrapper string "%s at %s: "
    121121
    122122    jmp     SHORT DetectPrint_FormatCSSIfromParamsInSSBP
  • trunk/XTIDE_Universal_BIOS/Src/Main.asm

    r636 r638  
    6565
    6666; ROM variables (must start at offset 0)
    67 CNT_ROM_BLOCKS      EQU     BIOS_SIZE / 512                 ; number of 512B blocks, 16 = 8kB BIOS
    6867istruc ROMVARS
    69     at  ROMVARS.wRomSign,       dw  0AA55h                  ; PC ROM signature
    70     at  ROMVARS.bRomSize,       db  CNT_ROM_BLOCKS          ; ROM size in 512B blocks
    71     at  ROMVARS.rgbJump,        jmp Initialize_FromMainBiosRomSearch
     68    at  ROMVARS.wRomSign,       dw  0AA55h                  ; PC Option ROM BIOS signature
     69    at  ROMVARS.bRomSize,       db  CNT_ROM_BLOCKS          ; ROM BIOS size in 512B blocks (defined below at the very end of the BIOS)
     70    at  ROMVARS.rgbJump,        jmp Initialize_FromMainBiosRomSearch    ; Required to be a jump for compatibility with PhoenixBIOS 4.0 (see BIOS Programmer's Guide v10.pdf)
    7271    at  ROMVARS.rgbSign,        db  FLASH_SIGNATURE
    7372    at  ROMVARS.szTitle,        db  TITLE_STRING
     
    346345%endif
    347346
    348 
     347    BIOS_SIZE       EQU     (($-$$) + 2047) & ~2047 ; Align the size to a 2 kB boundary (required for compatibility reasons)
     348    CNT_ROM_BLOCKS  EQU     BIOS_SIZE >> 9          ; BIOS_SIZE / 512
    349349%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    350350; Although it's very unlikely to happen, we give warnings for builds that cannot be automatically checksummed due to the size being too large.
    351351; In some cases it's theoretically possible to checksum the build anyway (manually) which is why these are warnings and not errors.
    352352%if BIOS_SIZE = 8192                ; A small build, possibly a candidate for the ROM socket on a 3Com 3C503 card.
    353     %if ($-$$) <= BIOS_SIZE         ; Only give warnings when the problem isn't obvious anyway.
    354         %if ($-$$) > BIOS_SIZE - 3
    355             %warning "This build is too large to be auto-checksummed!"
    356         %endif
     353    %if ($-$$) > BIOS_SIZE - 3
     354        %warning "This build is too large to be auto-checksummed!"
    357355    %endif
    358356%elif ($-$$) = BIOS_SIZE            ; A large or tiny build.
  • trunk/XTIDE_Universal_BIOS/Src/Strings.asm

    r635 r638  
    44;
    55; XTIDE Universal BIOS and Associated Tools
    6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2025 by XTIDE Universal BIOS Team.
     6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    77;
    88; This program is free software; you can redistribute it and/or modify
     
    3636g_szDetectCOM:          db  "COM%c%s",NULL
    3737g_szDetectCOMAuto:      db  " Detect",NULL
    38 g_szDetectCOMSmall:     db  "/%u%u00",NULL                  ; IDE Master at COM1/9600:
    39 g_szDetectCOMLarge:     db  "/%u.%uK",NULL                  ; IDE Master at COM1/19.2K:
     38g_szDetectCOMSmall:     db  "/%u%u00",NULL                  ; Master at COM1/9600:
     39g_szDetectCOMLarge:     db  "/%u.%uK",NULL                  ; Master at COM1/19.2K:
    4040%endif
    4141g_szDetectEnd:
    42 g_szDetectPort:         db  "%x",NULL                       ; IDE Master at 1F0h:
     42g_szDetectPort:         db  "%x",NULL                       ; Master at 1F0h:
    4343
    4444%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
     
    6767
    6868
    69 ; Boot loader strings
     69; Boot loader and drive detection strings
    7070g_szTryToBoot:          db  "Booting %c",ANGLE_QUOTE_RIGHT,"%c",LF,CR,NULL
    7171g_szBootSectorNotFound: db  "Boot sector "          ; String fall through...
    7272g_szNotFound:           db  "not found",LF,CR,NULL
    7373g_szReadError:          db  "Error %x!",LF,CR,NULL
     74%ifdef MODULE_ATAPI
     75g_szAtapiDevice:        db  "ATAPI device",LF,CR,NULL
     76%endif
     77%ifndef NO_ATAID_VALIDATION
     78g_szValidationFailed:   db  "failed validation",LF,CR,NULL
     79%endif
    7480
    7581
  • trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm

    r635 r638  
    1414;
    1515; XTIDE Universal BIOS and Associated Tools
    16 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2025 by XTIDE Universal BIOS Team.
     16; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    1717;
    1818; This program is free software; you can redistribute it and/or modify
     
    6161                          db     20h,  4ah,  6bh,  7ah,  6bh,  69h, 0bah          ; compressed
    6262
    63 g_szDetectCOMSmall:     ; db    "/%u%u00",NULL                  ; IDE Master at COM1/9600:
     63g_szDetectCOMSmall:     ; db    "/%u%u00",NULL                  ; Master at COM1/9600:
    6464                        ; db     2fh,  25h,  75h,  25h,  75h,  30h,  30h,  00h    ; uncompressed
    6565                          db     2ah,  35h,  35h,  33h,  13h                      ; compressed
    6666
    67 g_szDetectCOMLarge:     ; db    "/%u.%uK",NULL                  ; IDE Master at COM1/19.2K:
     67g_szDetectCOMLarge:     ; db    "/%u.%uK",NULL                  ; Master at COM1/19.2K:
    6868                        ; db     2fh,  25h,  75h,  2eh,  25h,  75h,  4bh,  00h    ; uncompressed
    6969                          db     2ah,  35h,  29h,  35h,  91h                      ; compressed
     
    7171%endif
    7272g_szDetectEnd:
    73 g_szDetectPort:         ; db    "%x",NULL                       ; IDE Master at 1F0h:
     73g_szDetectPort:         ; db    "%x",NULL                       ; Master at 1F0h:
    7474                        ; db     25h,  78h,  00h    ; uncompressed
    7575                          db     17h                ; compressed
     
    128128
    129129
    130 ; Boot loader strings
     130; Boot loader and drive detection strings
    131131g_szTryToBoot:          ; db    "Booting %c",ANGLE_QUOTE_RIGHT,"%c",LF,CR,NULL
    132132                        ; db     42h,  6fh,  6fh,  74h,  69h,  6eh,  67h,  20h,  25h,  63h, 0afh,  25h,  63h,  0ah,  0dh,  00h    ; uncompressed
     
    145145                          db     4bh,  78h,  78h,  75h, 0f8h,  37h,  25h,  19h                            ; compressed
    146146
     147%ifdef MODULE_ATAPI
     148g_szAtapiDevice:        ; db    "ATAPI device",LF,CR,NULL
     149                        ; db     41h,  54h,  41h,  50h,  49h,  20h,  64h,  65h,  76h,  69h,  63h,  65h,  0ah,  0dh,  00h    ; uncompressed
     150                          db     47h,  5ah,  47h,  56h, 0cfh,  6ah,  6bh,  7ch,  6fh,  69h,  6bh,  19h                      ; compressed
     151
     152%endif
     153%ifndef NO_ATAID_VALIDATION
     154g_szValidationFailed:   ; db    "failed validation",LF,CR,NULL
     155                        ; db     66h,  61h,  69h,  6ch,  65h,  64h,  20h,  76h,  61h,  6ch,  69h,  64h,  61h,  74h,  69h,  6fh,  6eh,  0ah,  0dh,  00h    ; uncompressed
     156                          db     6ch,  67h,  6fh,  72h,  6bh, 0eah,  7ch,  67h,  72h,  6fh,  6ah,  67h,  7ah,  6fh,  75h,  74h,  19h                      ; compressed
     157
     158%endif
    147159
    148160
     
    615627
    616628;; translated usage stats
     629;; 48:2
     630;; 181:1
     631;; 172:2
     632;; 175:1
     633;; 49:3
     634;; 54:3
    617635;; 56:9
    618 ;; 48:2
     636;; 33:1
     637;; 51:3
     638;; 200:1
     639;; 53:2
     640;; 46:3
     641;; 44:1
     642;; 34:3
     643;; 45:2
    619644;; 32:34
    620 ;; 34:3
    621 ;; 33:1
    622 ;; 49:3
     645;; 50:2
    623646;; 47:2
    624 ;; 172:2
    625 ;; 53:2
    626 ;; 54:3
    627 ;; 45:2
     647;; 171:2
    628648;; 179:8
    629 ;; 46:3
    630 ;; 51:3
    631 ;; 171:2
    632 ;; 50:2
    633 ;; 181:1
    634 ;; 200:1
    635 ;; 175:1
    636 ;; 44:1
    637649;; total translated: 20
    638650
    639651;; format usage stats
     652;; 2-I:1
     653;; nl:14
     654;; c:13
     655;; x:5
    640656;; u:6
    641 ;; 2-I:1
     657;; z:2
    642658;; 5-u:2
    643 ;; z:2
    644 ;; nl:12
     659;; s:14
     660;; 2-u:1
    645661;; 5-x:1
    646 ;; s:14
    647 ;; x:5
    648662;; A:4
    649 ;; 2-u:1
    650 ;; c:13
    651663;; total format: 11
    652664
     
    659671;; 63,?:
    660672;; 64,@:1
    661 ;; 65,A:5
     673;; 65,A:7
    662674;; 66,B:11
    663675;; 67,C:3
     
    667679;; 71,G:3
    668680;; 72,H:2
    669 ;; 73,I:1
     681;; 73,I:2
    670682;; 74,J:1
    671683;; 75,K:1
     
    674686;; 78,N:2
    675687;; 79,O:3
    676 ;; 80,P:1
     688;; 80,P:2
    677689;; 81,Q:1
    678690;; 82,R:7
    679691;; 83,S:3
    680 ;; 84,T:2
     692;; 84,T:3
    681693;; 85,U:2
    682694;; 86,V:
     
    691703;; 95,_:
    692704;; 96,`:
    693 ;; 97,a:7
     705;; 97,a:10
    694706;; 98,b:
    695 ;; 99,c:6
    696 ;; 100,d:6
    697 ;; 101,e:15
    698 ;; 102,f:1
     707;; 99,c:7
     708;; 100,d:9
     709;; 101,e:18
     710;; 102,f:2
    699711;; 103,g:2
    700712;; 104,h:
    701 ;; 105,i:9
     713;; 105,i:13
    702714;; 106,j:
    703715;; 107,k:4
    704 ;; 108,l:5
     716;; 108,l:7
    705717;; 109,m:2
    706 ;; 110,n:11
    707 ;; 111,o:20
     718;; 110,n:12
     719;; 111,o:21
    708720;; 112,p:3
    709721;; 113,q:
    710722;; 114,r:11
    711723;; 115,s:7
    712 ;; 116,t:15
     724;; 116,t:16
    713725;; 117,u:4
    714 ;; 118,v:3
     726;; 118,v:5
    715727;; 119,w:1
    716728;; 120,x:
  • trunk/XTIDE_Universal_BIOS/makefile

    r630 r638  
    66# small     Builds only binaries smaller than or equal to 8 kiB (without checksums)                #
    77# large     Builds only binaries larger than 8 kiB (without checksums)                             #
    8 # custom    Builds custom binary without checksum (change DEFINES_CUSTOM / BIOS_SIZE_CUSTOM first) #
     8# custom    Builds custom binary without checksum (make sure to change DEFINES_CUSTOM first)      #
    99# clean     Removes all files from \Build                                                          #
    1010# checksum* Same as 'all' but also applies checksums to the binaries                               #
     
    2020# MODULE_8BIT_IDE_ADVANCED    Support for memory mapped and DMA based cards like JRIDE and XTCF    #
    2121# MODULE_ADVANCED_ATA         Native support for some VLB IDE controllers (requires USE_386)       #
     22# MODULE_ATAPI                Very simplistic detection of ATAPI devices                           #
    2223# MODULE_COMPATIBLE_TABLES    Support for ill behaving software that tries to access DPT directly  #
    2324# MODULE_BOOT_MENU            Boot Menu for selection of drive to boot from                        #
     
    5253#                                                                                                  #
    5354# ** AT Builds only (when USE_AT is defined)                                                       #
    54 # *** Use this only when certain known good drives are not being detected (eg WD Caviars)          #
     55# *** Some known good drives fails validation (e.g. WD Caviars)                                    #
    5556####################################################################################################
    5657
     
    131132DEFINES_CUSTOM = ?
    132133
     134# This set of defines is used only for 'make strings'. Include or exclude defines as needed. The combination of defines doesn't have
     135# to make sense. This is just to ensure that all relevant strings are compressed when converting Strings.asm to StringsCompressed.asm.
     136DEFINES_STRINGSCOMPRESSED = MODULE_STRINGS_COMPRESSED MODULE_BOOT_MENU MODULE_HOTKEYS MODULE_ADVANCED_ATA MODULE_8BIT_IDE MODULE_8BIT_IDE_ADVANCED MODULE_SERIAL MODULE_ATAPI
     137
    133138
    134139###################
     
    136141###################
    137142
    138 # Target size of the BIOS, used in Main.asm for number of 512B blocks (CNT_ROM_BLOCKS) and by checksum Perl script below ('make checksum').
    139 # Note! The size must be a multiple of 2 KB for compatibility reasons.
    140 BIOS_SIZE_TINY = 4096
    141 BIOS_SIZE_SMALL = 8192
    142 BIOS_SIZE_LARGE = 12288
    143 BIOS_SIZE_CUSTOM = ?
    144 
    145143# Add -D in front of every preprocessor define declaration
    146 DEFS_XT = $(DEFINES_XT:%=-D%) -DBIOS_SIZE=$(BIOS_SIZE_SMALL)
    147 DEFS_XTPLUS = $(DEFINES_XTPLUS:%=-D%) -DBIOS_SIZE=$(BIOS_SIZE_SMALL)
    148 DEFS_AT = $(DEFINES_AT:%=-D%) -DBIOS_SIZE=$(BIOS_SIZE_SMALL)
    149 DEFS_386 = $(DEFINES_386:%=-D%) -DBIOS_SIZE=$(BIOS_SIZE_SMALL)
    150 DEFS_PS2 = $(DEFINES_PS2:%=-D%) -DBIOS_SIZE=$(BIOS_SIZE_SMALL)
    151 DEFS_XT_LARGE = $(DEFINES_XT_LARGE:%=-D%) -DBIOS_SIZE=$(BIOS_SIZE_LARGE)
    152 DEFS_XTPLUS_LARGE = $(DEFINES_XTPLUS_LARGE:%=-D%) -DBIOS_SIZE=$(BIOS_SIZE_LARGE)
    153 DEFS_AT_LARGE = $(DEFINES_AT_LARGE:%=-D%) -DBIOS_SIZE=$(BIOS_SIZE_LARGE)
    154 DEFS_386_LARGE = $(DEFINES_386_LARGE:%=-D%) -DBIOS_SIZE=$(BIOS_SIZE_LARGE)
    155 DEFS_PS2_LARGE = $(DEFINES_PS2_LARGE:%=-D%) -DBIOS_SIZE=$(BIOS_SIZE_LARGE)
    156 DEFS_XT_TINY = $(DEFINES_XT_TINY:%=-D%) -DBIOS_SIZE=$(BIOS_SIZE_TINY)
    157 DEFS_CUSTOM = $(DEFINES_CUSTOM:%=-D%) -DBIOS_SIZE=$(BIOS_SIZE_CUSTOM)
     144DEFS_XT = $(DEFINES_XT:%=-D%)
     145DEFS_XTPLUS = $(DEFINES_XTPLUS:%=-D%)
     146DEFS_AT = $(DEFINES_AT:%=-D%)
     147DEFS_386 = $(DEFINES_386:%=-D%)
     148DEFS_PS2 = $(DEFINES_PS2:%=-D%)
     149DEFS_XT_LARGE = $(DEFINES_XT_LARGE:%=-D%)
     150DEFS_XTPLUS_LARGE = $(DEFINES_XTPLUS_LARGE:%=-D%)
     151DEFS_AT_LARGE = $(DEFINES_AT_LARGE:%=-D%)
     152DEFS_386_LARGE = $(DEFINES_386_LARGE:%=-D%)
     153DEFS_PS2_LARGE = $(DEFINES_PS2_LARGE:%=-D%)
     154DEFS_XT_TINY = $(DEFINES_XT_TINY:%=-D%)
     155DEFS_CUSTOM = $(DEFINES_CUSTOM:%=-D%)
     156DEFS_STRINGSCOMPRESSED = $(DEFINES_STRINGSCOMPRESSED:%=-D%)
    158157
    159158# Add -I in front of all header directories
     
    251250
    252251strings: src\Strings.asm
    253     @$(AS) src\Strings.asm $(ASFLAGS) $(DEFS_AT_LARGE) -DCHECK_FOR_UNUSED_ENTRYPOINTS -DMODULE_STRINGS_COMPRESSED_PRECOMPRESS -o build\Strings.bin -l build\StringsPrecompress.lst
     252    @$(AS) src\Strings.asm $(ASFLAGS) $(DEFS_STRINGSCOMPRESSED) -DCHECK_FOR_UNUSED_ENTRYPOINTS -DMODULE_STRINGS_COMPRESSED_PRECOMPRESS -o build\Strings.bin -l build\StringsPrecompress.lst
    254253    @perl ..\Tools\StringsCompress.pl < build\StringsPrecompress.lst > src\StringsCompressed.asm
    255254    @echo StringsCompressed.asm updated!
     
    260259
    261260checksum: all
    262     @perl ..\Tools\checksum.pl $(TARGET)_tiny.bin $(BIOS_SIZE_TINY)
    263     @perl ..\Tools\checksum.pl $(TARGET)_xt.bin $(BIOS_SIZE_SMALL)
    264     @perl ..\Tools\checksum.pl $(TARGET)_xtp.bin $(BIOS_SIZE_SMALL)
    265     @perl ..\Tools\checksum.pl $(TARGET)_at.bin $(BIOS_SIZE_SMALL)
    266     @perl ..\Tools\checksum.pl $(TARGET)_386.bin $(BIOS_SIZE_SMALL)
    267     @perl ..\Tools\checksum.pl $(TARGET)_ps2.bin $(BIOS_SIZE_SMALL)
    268     @perl ..\Tools\checksum.pl $(TARGET)_xtl.bin $(BIOS_SIZE_LARGE)
    269     @perl ..\Tools\checksum.pl $(TARGET)_xtpl.bin $(BIOS_SIZE_LARGE)
    270     @perl ..\Tools\checksum.pl $(TARGET)_atl.bin $(BIOS_SIZE_LARGE)
    271     @perl ..\Tools\checksum.pl $(TARGET)_386l.bin $(BIOS_SIZE_LARGE)
    272     @perl ..\Tools\checksum.pl $(TARGET)_ps2l.bin $(BIOS_SIZE_LARGE)
     261    @perl ..\Tools\checksum.pl $(TARGET)_tiny.bin
     262    @perl ..\Tools\checksum.pl $(TARGET)_xt.bin
     263    @perl ..\Tools\checksum.pl $(TARGET)_xtp.bin
     264    @perl ..\Tools\checksum.pl $(TARGET)_at.bin
     265    @perl ..\Tools\checksum.pl $(TARGET)_386.bin
     266    @perl ..\Tools\checksum.pl $(TARGET)_ps2.bin
     267    @perl ..\Tools\checksum.pl $(TARGET)_xtl.bin
     268    @perl ..\Tools\checksum.pl $(TARGET)_xtpl.bin
     269    @perl ..\Tools\checksum.pl $(TARGET)_atl.bin
     270    @perl ..\Tools\checksum.pl $(TARGET)_386l.bin
     271    @perl ..\Tools\checksum.pl $(TARGET)_ps2l.bin
    273272
    274273unused:
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/AutoConfigure.asm

    r621 r638  
    55;
    66; XTIDE Universal BIOS and Associated Tools
    7 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2013 by XTIDE Universal BIOS Team.
     7; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    88;
    99; This program is free software; you can redistribute it and/or modify
     
    8585    cmp     ax, dx
    8686    jne     SHORT .NextChecksum
     87    test    BYTE [di+ROMVARS.wFlags], FLG_ROMVARS_MODULE_MFM_COMPATIBILITY
     88    mov     dx, g_szDlgIncompatibleBuild
     89    jnz     SHORT .DisplayNotificationFromCSDX
    8790    or      BYTE [di+ROMVARS.wFlags], FLG_ROMVARS_CLEAR_BDA_HD_COUNT
    8891    mov     dx, g_szDlgBadBiosFound
     92.DisplayNotificationFromCSDX:
    8993    jmp     Dialogs_DisplayNotificationFromCSDX
    9094
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupage.asm

    r526 r638  
    44;
    55; XTIDE Universal BIOS and Associated Tools
    6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2013 by XTIDE Universal BIOS Team.
     6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    77;
    88; This program is free software; you can redistribute it and/or modify
     
    8888    xor     ax, ax
    8989    mov     cx, [di+MENUPAGE.wMenuitems]
    90     lea     bx, [di+MENUPAGE.rgMenuitem]
     90    lea     bx, [di+MENUPAGE.rgMenuitem+MENUITEM.bFlags]
    9191
    9292ALIGN JUMP_ALIGN
    93 .CheckVisibilityFromNextMenuitem:
    94     test    BYTE [bx+MENUITEM.bFlags], FLG_MENUITEM_VISIBLE
     93.CheckVisibilityForNextMenuitem:
     94    test    BYTE [bx], FLG_MENUITEM_VISIBLE
    9595    jz      SHORT .PrepareToLoop
    9696    inc     ax
    9797.PrepareToLoop:
    9898    add     bx, BYTE MENUITEM_size
    99     loop    .CheckVisibilityFromNextMenuitem
     99    loop    .CheckVisibilityForNextMenuitem
    100100    ret
    101101
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/BootMenuSettingsMenu.asm

    r625 r638  
    44;
    55; XTIDE Universal BIOS and Associated Tools
    6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2023 by XTIDE Universal BIOS Team.
     6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team.
    77;
    88; This program is free software; you can redistribute it and/or modify
     
    4646    at  MENUITEM.szQuickInfo,       dw  g_szNfoDispMode
    4747    at  MENUITEM.szHelp,            dw  g_szNfoDispMode
    48     at  MENUITEM.bFlags,            db  FLG_MENUITEM_VISIBLE
     48    at  MENUITEM.bFlags,            db  FLG_MENUITEM_VISIBLE | FLG_MENUITEM_MODIFY_MENU
    4949    at  MENUITEM.bType,             db  TYPE_MENUITEM_MULTICHOICE
    5050    at  MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset,        dw  ROMVARS.wDisplayMode
     
    6262    at  MENUITEM.szQuickInfo,       dw  g_szNfoColorTheme
    6363    at  MENUITEM.szHelp,            dw  g_szHelpColorTheme
    64     at  MENUITEM.bFlags,            db  FLG_MENUITEM_VISIBLE | FLG_MENUITEM_MODIFY_MENU
     64    at  MENUITEM.bFlags,            db  FLG_MENUITEM_MODIFY_MENU
    6565    at  MENUITEM.bType,             db  TYPE_MENUITEM_MULTICHOICE
    6666    at  MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset,        dw  ROMVARS.pColorTheme     ; Only ever read - never modified
     
    142142    at  MENUITEM.szQuickInfo,       dw  g_szNfoClearBdaDriveCount
    143143    at  MENUITEM.szHelp,            dw  g_szHelpClearBdaDriveCount
    144     at  MENUITEM.bFlags,            db  FLG_MENUITEM_VISIBLE | FLG_MENUITEM_FLAGVALUE
     144    at  MENUITEM.bFlags,            db  FLG_MENUITEM_FLAGVALUE
    145145    at  MENUITEM.bType,             db  TYPE_MENUITEM_MULTICHOICE
    146146    at  MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset,        dw  ROMVARS.wFlags
     
    183183    dw  g_szValueColorTheme4
    184184    dw  g_szValueColorTheme5
     185    dw  g_szValueColorTheme6
     186    dw  g_szValueColorTheme7
     187    dw  g_szValueColorTheme8
     188    dw  g_szValueColorTheme9
     189    dw  g_szValueColorTheme10
    185190
    186191ColorThemeTable:
    187192; Note! If there's ever a need to add, remove or change a theme or reorder the themes then the ROMVARS version must be incremented.
    188193    ; Classic (default)
    189     db  COLOR_ATTRIBUTE(COLOR_YELLOW, COLOR_BLUE)                           ; .cBordersAndBackground
    190     db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                            ; .cShadow
    191     db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLUE)                     ; .cTitle
    192     db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_BLUE)                            ; .cItem
    193     db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_CYAN)                     ; .cHighlightedItem
    194     db  COLOR_ATTRIBUTE(COLOR_RED, COLOR_BLUE) | FLG_COLOR_BLINK            ; .cHurryTimeout
    195     db  COLOR_ATTRIBUTE(COLOR_GREEN, COLOR_BLUE)                            ; .cNormalTimeout
     194    db  COLOR_ATTRIBUTE(COLOR_YELLOW, COLOR_BLUE)                               ; .cBordersAndBackground
     195    db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                                ; .cShadow
     196    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLUE)                         ; .cTitle
     197    db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_BLUE)                                ; .cItem
     198    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_CYAN)                         ; .cHighlightedItem
     199    db  COLOR_ATTRIBUTE(COLOR_RED, COLOR_BLUE) | FLG_COLOR_BLINK                ; .cHurryTimeout
     200    db  COLOR_ATTRIBUTE(COLOR_GREEN, COLOR_BLUE)                                ; .cNormalTimeout
    196201    ; Argon Blue
    197     db  COLOR_ATTRIBUTE(COLOR_LIGHT_BLUE, COLOR_BLACK)                      ; .cBordersAndBackground
    198     db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                            ; .cShadow
    199     db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLACK)                    ; .cTitle
    200     db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_BLACK)                           ; .cItem
    201     db  COLOR_ATTRIBUTE(COLOR_LIGHT_BLUE, COLOR_BLACK)                      ; .cHighlightedItem
    202     db  COLOR_ATTRIBUTE(COLOR_LIGHT_BLUE, COLOR_BLACK) | FLG_COLOR_BLINK    ; .cHurryTimeout
    203     db  COLOR_ATTRIBUTE(COLOR_LIGHT_BLUE, COLOR_BLACK)                      ; .cNormalTimeout
     202    db  COLOR_ATTRIBUTE(COLOR_LIGHT_BLUE, COLOR_BLACK)                          ; .cBordersAndBackground
     203    db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                                ; .cShadow
     204    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLACK)                        ; .cTitle
     205    db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_BLACK)                               ; .cItem
     206    db  COLOR_ATTRIBUTE(COLOR_LIGHT_BLUE, COLOR_BLACK)                          ; .cHighlightedItem
     207    db  COLOR_ATTRIBUTE(COLOR_LIGHT_BLUE, COLOR_BLACK) | FLG_COLOR_BLINK        ; .cHurryTimeout
     208    db  COLOR_ATTRIBUTE(COLOR_LIGHT_BLUE, COLOR_BLACK)                          ; .cNormalTimeout
    204209    ; Neon Red
    205     db  COLOR_ATTRIBUTE(COLOR_LIGHT_RED, COLOR_BLACK)                       ; .cBordersAndBackground
    206     db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                            ; .cShadow
    207     db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLACK)                    ; .cTitle
    208     db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_BLACK)                           ; .cItem
    209     db  COLOR_ATTRIBUTE(COLOR_LIGHT_RED, COLOR_BLACK)                       ; .cHighlightedItem
    210     db  COLOR_ATTRIBUTE(COLOR_LIGHT_RED, COLOR_BLACK) | FLG_COLOR_BLINK     ; .cHurryTimeout
    211     db  COLOR_ATTRIBUTE(COLOR_LIGHT_RED, COLOR_BLACK)                       ; .cNormalTimeout
     210    db  COLOR_ATTRIBUTE(COLOR_LIGHT_RED, COLOR_BLACK)                           ; .cBordersAndBackground
     211    db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                                ; .cShadow
     212    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLACK)                        ; .cTitle
     213    db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_BLACK)                               ; .cItem
     214    db  COLOR_ATTRIBUTE(COLOR_LIGHT_RED, COLOR_BLACK)                           ; .cHighlightedItem
     215    db  COLOR_ATTRIBUTE(COLOR_LIGHT_RED, COLOR_BLACK) | FLG_COLOR_BLINK         ; .cHurryTimeout
     216    db  COLOR_ATTRIBUTE(COLOR_LIGHT_RED, COLOR_BLACK)                           ; .cNormalTimeout
    212217    ; Phosphor Green
    213     db  COLOR_ATTRIBUTE(COLOR_LIGHT_GREEN, COLOR_BLACK)                     ; .cBordersAndBackground
    214     db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                            ; .cShadow
    215     db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLACK)                    ; .cTitle
    216     db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_BLACK)                           ; .cItem
    217     db  COLOR_ATTRIBUTE(COLOR_LIGHT_GREEN, COLOR_BLACK)                     ; .cHighlightedItem
    218     db  COLOR_ATTRIBUTE(COLOR_LIGHT_GREEN, COLOR_BLACK) | FLG_COLOR_BLINK   ; .cHurryTimeout
    219     db  COLOR_ATTRIBUTE(COLOR_LIGHT_GREEN, COLOR_BLACK)                     ; .cNormalTimeout
     218    db  COLOR_ATTRIBUTE(COLOR_LIGHT_GREEN, COLOR_BLACK)                         ; .cBordersAndBackground
     219    db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                                ; .cShadow
     220    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLACK)                        ; .cTitle
     221    db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_BLACK)                               ; .cItem
     222    db  COLOR_ATTRIBUTE(COLOR_LIGHT_GREEN, COLOR_BLACK)                         ; .cHighlightedItem
     223    db  COLOR_ATTRIBUTE(COLOR_LIGHT_GREEN, COLOR_BLACK) | FLG_COLOR_BLINK       ; .cHurryTimeout
     224    db  COLOR_ATTRIBUTE(COLOR_LIGHT_GREEN, COLOR_BLACK)                         ; .cNormalTimeout
    220225    ; Moon Surface
    221     db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                            ; .cBordersAndBackground
    222     db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                            ; .cShadow
    223     db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLACK)                    ; .cTitle
    224     db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_BLACK)                           ; .cItem
    225     db  COLOR_ATTRIBUTE(COLOR_BROWN, COLOR_BLACK)                           ; .cHighlightedItem
    226     db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLACK) | FLG_COLOR_BLINK  ; .cHurryTimeout
    227     db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_BLACK)                           ; .cNormalTimeout
     226    db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                                ; .cBordersAndBackground
     227    db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                                ; .cShadow
     228    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLACK)                        ; .cTitle
     229    db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_BLACK)                               ; .cItem
     230    db  COLOR_ATTRIBUTE(COLOR_BROWN, COLOR_BLACK)                               ; .cHighlightedItem
     231    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLACK) | FLG_COLOR_BLINK      ; .cHurryTimeout
     232    db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_BLACK)                               ; .cNormalTimeout
    228233    ; Toxic Waste
    229     db  COLOR_ATTRIBUTE(COLOR_LIGHT_GREEN, COLOR_BLACK)                     ; .cBordersAndBackground
    230     db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                            ; .cShadow
    231     db  COLOR_ATTRIBUTE(COLOR_LIGHT_GREEN, COLOR_BLACK)                     ; .cTitle
    232     db  COLOR_ATTRIBUTE(COLOR_LIGHT_CYAN, COLOR_BLACK)                      ; .cItem
    233     db  COLOR_ATTRIBUTE(COLOR_LIGHT_CYAN, COLOR_BLUE)                       ; .cHighlightedItem
    234     db  COLOR_ATTRIBUTE(COLOR_LIGHT_RED, COLOR_BLACK) | FLG_COLOR_BLINK     ; .cHurryTimeout
    235     db  COLOR_ATTRIBUTE(COLOR_LIGHT_RED, COLOR_BLACK)                       ; .cNormalTimeout
     234    db  COLOR_ATTRIBUTE(COLOR_LIGHT_GREEN, COLOR_BLACK)                         ; .cBordersAndBackground
     235    db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                                ; .cShadow
     236    db  COLOR_ATTRIBUTE(COLOR_LIGHT_GREEN, COLOR_BLACK)                         ; .cTitle
     237    db  COLOR_ATTRIBUTE(COLOR_LIGHT_CYAN, COLOR_BLACK)                          ; .cItem
     238    db  COLOR_ATTRIBUTE(COLOR_LIGHT_CYAN, COLOR_BLUE)                           ; .cHighlightedItem
     239    db  COLOR_ATTRIBUTE(COLOR_LIGHT_RED, COLOR_BLACK) | FLG_COLOR_BLINK         ; .cHurryTimeout
     240    db  COLOR_ATTRIBUTE(COLOR_LIGHT_RED, COLOR_BLACK)                           ; .cNormalTimeout
     241    ; Amethyst
     242    db  COLOR_ATTRIBUTE(COLOR_LIGHT_MAGENTA, COLOR_MAGENTA)                     ; .cBordersAndBackground
     243    db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                                ; .cShadow
     244    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_MAGENTA)                      ; .cTitle
     245    db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_MAGENTA)                             ; .cItem
     246    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_MAGENTA)                      ; .cHighlightedItem
     247    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_MAGENTA) | FLG_COLOR_BLINK    ; .cHurryTimeout
     248    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_MAGENTA)                      ; .cNormalTimeout
     249    ; Emerald
     250    db  COLOR_ATTRIBUTE(COLOR_LIGHT_GREEN, COLOR_GREEN)                         ; .cBordersAndBackground
     251    db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                                ; .cShadow
     252    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_GREEN)                        ; .cTitle
     253    db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_GREEN)                               ; .cItem
     254    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_GREEN)                        ; .cHighlightedItem
     255    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_GREEN) | FLG_COLOR_BLINK      ; .cHurryTimeout
     256    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_GREEN)                        ; .cNormalTimeout
     257    ; Sapphire
     258    db  COLOR_ATTRIBUTE(COLOR_LIGHT_BLUE, COLOR_BLUE)                           ; .cBordersAndBackground
     259    db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                                ; .cShadow
     260    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLUE)                         ; .cTitle
     261    db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_BLUE)                                ; .cItem
     262    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLUE)                         ; .cHighlightedItem
     263    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLUE) | FLG_COLOR_BLINK       ; .cHurryTimeout
     264    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLUE)                         ; .cNormalTimeout
     265    ; Ruby
     266    db  COLOR_ATTRIBUTE(COLOR_LIGHT_RED, COLOR_RED)                             ; .cBordersAndBackground
     267    db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                                ; .cShadow
     268    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_RED)                          ; .cTitle
     269    db  COLOR_ATTRIBUTE(COLOR_WHITE, COLOR_RED)                                 ; .cItem
     270    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_RED)                          ; .cHighlightedItem
     271    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_RED) | FLG_COLOR_BLINK        ; .cHurryTimeout
     272    db  COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_RED)                          ; .cNormalTimeout
     273    ; Liquid Crystal Display
     274    db  COLOR_ATTRIBUTE(COLOR_BLUE, COLOR_GREEN)                                ; .cBordersAndBackground
     275    db  COLOR_ATTRIBUTE(COLOR_GRAY, COLOR_BLACK)                                ; .cShadow
     276    db  COLOR_ATTRIBUTE(COLOR_BLUE, COLOR_GREEN)                                ; .cTitle
     277    db  COLOR_ATTRIBUTE(COLOR_BLUE, COLOR_GREEN)                                ; .cItem
     278    db  COLOR_ATTRIBUTE(COLOR_GREEN, COLOR_BLUE)                                ; .cHighlightedItem
     279    db  COLOR_ATTRIBUTE(COLOR_GREEN, COLOR_BLUE) | FLG_COLOR_BLINK              ; .cHurryTimeout
     280    db  COLOR_ATTRIBUTE(COLOR_GREEN, COLOR_BLUE)                                ; .cNormalTimeout
    236281EndOfColorThemeTable:
    237282CountOfThemes   equ     (EndOfColorThemeTable-ColorThemeTable) / ATTRIBUTE_CHARS_size
     
    259304    call    .EnableOrDisableColorThemeSelection
    260305    call    .EnableOrDisableBootMenuSelectionTimeout
     306    call    .EnableOrDisableRemoveOtherHardDrives
    261307    mov     si, g_MenupageForBootMenuSettingsMenu
    262308    jmp     Menupage_ChangeToNewMenupageInDSSI
     
    309355ALIGN JUMP_ALIGN
    310356.EnableOrDisableColorThemeSelection:
     357    push    ax
     358    test    ax, FLG_ROMVARS_MODULE_BOOT_MENU
     359    jz      SHORT .NoModuleBootMenu
     360    mov     bx, ROMVARS.wDisplayMode
     361    call    Buffers_GetRomvarsValueToAXfromOffsetInBX
     362    cmp     al, 4
     363    je      SHORT .ColorMode            ; Actually default video mode which might be a color mode
     364    cmp     al, 7
     365    je      SHORT .NotColorMode
     366    test    al, 1
     367    jnz     SHORT .ColorMode
     368.NoModuleBootMenu:
     369.NotColorMode:
     370    stc
     371.ColorMode:
     372    pop     ax
    311373    mov     bx, g_MenuitemBootMnuStngsColorTheme
    312     test    ax, FLG_ROMVARS_MODULE_BOOT_MENU
    313     jmp     SHORT .DisableMenuitemFromCSBXifZFset
     374    jnc     SHORT .EnableMenuitemFromCSBX
     375    jmp     SHORT .DisableMenuitemFromCSBX
    314376
    315377
     
    350412.DisableMenuitemFromCSBX:
    351413    jmp     DisableMenuitemFromCSBX
     414
     415
     416;--------------------------------------------------------------------
     417; .EnableOrDisableRemoveOtherHardDrives
     418;   Parameters:
     419;       AX:     ROMVARS.wFlags
     420;       SS:BP:  Menu handle
     421;   Returns:
     422;       Nothing
     423;   Corrupts registers:
     424;       BX
     425;--------------------------------------------------------------------
     426ALIGN JUMP_ALIGN
     427.EnableOrDisableRemoveOtherHardDrives:
     428    test    al, FLG_ROMVARS_MODULE_MFM_COMPATIBILITY
     429    mov     bx, g_MenuitemBootMnuStngsClearBdaDriveCount
     430    jz      SHORT .EnableMenuitemFromCSBX
     431    jmp     SHORT .DisableMenuitemFromCSBX
    352432
    353433
     
    398478    jne     SHORT .SkipCopy
    399479
    400     ; Copy the color theme fron the loaded BIOS overwriting XTIDECFG's own theme
     480    ; Copy the color theme from the loaded BIOS overwriting XTIDECFG's own theme
    401481    inc     si
    402482    mov     di, ColorTheme              ; ES:DI now points to ColorTheme in XTIDECFG
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Strings.asm

    r636 r638  
    4545
    4646; General Yes/No response type dialog messages
    47 g_szDlgExitToDos:       db  "Exit to DOS?",NULL
    48 g_szDlgSaveChanges:     db  "Do you want to save changes to XTIDE Universal BIOS image file?",NULL
    49 g_szDlgDriveNotReady:   db  "Drive not ready! Retry?",NULL
     47g_szDlgExitToDos:           db  "Exit to DOS?",NULL
     48g_szDlgSaveChanges:         db  "Do you want to save changes to XTIDE Universal BIOS image file?",NULL
     49g_szDlgDriveNotReady:       db  "Drive not ready! Retry?",NULL
    5050
    5151; Generic dialog strings
    52 g_szNotificationDialog: db  "Notification.",NULL
    53 g_szErrorDialog:        db  "Error!",NULL
    54 g_szGenericDialogInfo:  db  "Press ENTER or ESC to close dialog.",NULL
     52g_szNotificationDialog:     db  "Notification.",NULL
     53g_szErrorDialog:            db  "Error!",NULL
     54g_szGenericDialogInfo:      db  "Press ENTER or ESC to close dialog.",NULL
    5555
    5656; Flashing related strings
     
    7171
    7272; Strings for main menu
    73 g_szItemMainExitToDOS:  db  "Exit to DOS",NULL
    74 g_szItemMainLoadFile:   db  "Load BIOS from file",NULL
    75 g_szItemMainLoadROM:    db  "Load BIOS from EEPROM",NULL
    76 g_szItemMainLoadStngs:  db  "Load old settings from EEPROM",NULL
    77 g_szItemMainConfigure:  db  "Configure XTIDE Universal BIOS",NULL
    78 g_szItemMainFlash:      db  "Flash EEPROM",NULL
    79 g_szItemMainSave:       db  "Save BIOS back to original file",NULL
    80 g_szItemMainLicense:    db  "Copyright and License Information",NULL
    81 g_szItemMainHomePage:   db  "Web Links",NULL
    82 
    83 g_szDlgMainLoadROM:     db  "Successfully loaded XTIDE Universal BIOS from EEPROM.",NULL
    84 g_szDlgMainLoadStngs:   db  "Successfully loaded settings from EEPROM.",NULL
    85 g_szDlgMainLoadFile:    db  "Successfully loaded file for flashing.",NULL
    86 g_szDlgMainSaveFile:    db  "Successfully saved XTIDE Universal BIOS to file.",NULL
    87 g_szDlgMainFileTooBig:  db  "Selected file is too big to be loaded for flashing!",NULL
    88 g_szDlgMainLoadErr:     db  "Failed to load file!",NULL
    89 g_szDlgMainSaveErr:     db  "Failed to save file!",NULL
    90 g_szDlgFileTitle:       db  "Select file to be flashed.",NULL
    91 g_szDlgFileFilter:      db  "*.*",NULL
    92 
    93 g_szNfoMainExitToDOS:   db  "Quits XTIDE Universal BIOS Configurator.",NULL
    94 g_szNfoMainLoadFile:    db  "Load BIOS file to be configured or flashed.",NULL
    95 g_szNfoMainLoadROM:     db  "Load BIOS from EEPROM to be reconfigured.",NULL
    96 g_szNfoMainLoadStngs:   db  "Load old XTIDE Universal BIOS settings from EEPROM.",NULL
    97 g_szNfoMainConfigure:   db  "Configure XTIDE Universal BIOS settings.",NULL
    98 g_szNfoMainFlash:       db  "Flash loaded BIOS image to EEPROM.",NULL
    99 g_szNfoMainSave:        db  "Save BIOS changes back to original file from which it was loaded.",NULL
    100 g_szNfoMainLicense:     db  "XTIDE Universal BIOS and XTIDECFG Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team."
    101                         db  " Released under GNU GPL v2, with ABSOLUTELY NO WARRANTY. Press ENTER for more details...",NULL
    102 g_szNfoMainHomePage:    db  "Visit http://xtideuniversalbios.org (home page) and http://forum.vcfed.org (support)",NULL
    103 
    104 g_szHelpMainLicense:    db  "XTIDE Universal BIOS and XTIDECFG Configuration program are Copyright 2009-2010 by Tomi Tilli,"
    105                         db  " 2011-2026 by XTIDE Universal BIOS Team. Released under GNU GPL v2. This software comes with ABSOLUTELY NO WARRANTY."
    106                         db  " This is free software, and you are welcome to redistribute it under certain conditions."
    107                         db  " See the LICENSE.TXT file that was included with this distribution,"
    108                         db  " visit http://www.gnu.org/licenses/ gpl-2.0.html, or visit http://xtideuniversalbios.org.",NULL
     73g_szItemMainExitToDOS:      db  "Exit to DOS",NULL
     74g_szItemMainLoadFile:       db  "Load BIOS from file",NULL
     75g_szItemMainLoadROM:        db  "Load BIOS from EEPROM",NULL
     76g_szItemMainLoadStngs:      db  "Load old settings from EEPROM",NULL
     77g_szItemMainConfigure:      db  "Configure XTIDE Universal BIOS",NULL
     78g_szItemMainFlash:          db  "Flash EEPROM",NULL
     79g_szItemMainSave:           db  "Save BIOS back to original file",NULL
     80g_szItemMainLicense:        db  "Copyright and License Information",NULL
     81g_szItemMainHomePage:       db  "Web Links",NULL
     82
     83g_szDlgMainLoadROM:         db  "Successfully loaded XTIDE Universal BIOS from EEPROM.",NULL
     84g_szDlgMainLoadStngs:       db  "Successfully loaded settings from EEPROM.",NULL
     85g_szDlgMainLoadFile:        db  "Successfully loaded file for flashing.",NULL
     86g_szDlgMainSaveFile:        db  "Successfully saved XTIDE Universal BIOS to file.",NULL
     87g_szDlgMainFileTooBig:      db  "Selected file is too big to be loaded for flashing!",NULL
     88g_szDlgMainLoadErr:         db  "Failed to load file!",NULL
     89g_szDlgMainSaveErr:         db  "Failed to save file!",NULL
     90g_szDlgFileTitle:           db  "Select file to be flashed.",NULL
     91g_szDlgFileFilter:          db  "*.*",NULL
     92
     93g_szNfoMainExitToDOS:       db  "Quits XTIDE Universal BIOS Configurator.",NULL
     94g_szNfoMainLoadFile:        db  "Load BIOS file to be configured or flashed.",NULL
     95g_szNfoMainLoadROM:         db  "Load BIOS from EEPROM to be reconfigured.",NULL
     96g_szNfoMainLoadStngs:       db  "Load old XTIDE Universal BIOS settings from EEPROM.",NULL
     97g_szNfoMainConfigure:       db  "Configure XTIDE Universal BIOS settings.",NULL
     98g_szNfoMainFlash:           db  "Flash loaded BIOS image to EEPROM.",NULL
     99g_szNfoMainSave:            db  "Save BIOS changes back to original file from which it was loaded.",NULL
     100g_szNfoMainLicense:         db  "XTIDE Universal BIOS and XTIDECFG Copyright (C) 2009-2010 by Tomi Tilli, 2011-2026 by XTIDE Universal BIOS Team."
     101                            db  " Released under GNU GPL v2, with ABSOLUTELY NO WARRANTY. Press ENTER for more details...",NULL
     102g_szNfoMainHomePage:        db  "Visit http://xtideuniversalbios.org (home page) and http://forum.vcfed.org (support)",NULL
     103
     104g_szHelpMainLicense:        db  "XTIDE Universal BIOS and XTIDECFG Configuration program are Copyright 2009-2010 by Tomi Tilli,"
     105                            db  " 2011-2026 by XTIDE Universal BIOS Team. Released under GNU GPL v2. This software comes with ABSOLUTELY NO WARRANTY."
     106                            db  " This is free software, and you are welcome to redistribute it under certain conditions."
     107                            db  " See the LICENSE.TXT file that was included with this distribution,"
     108                            db  " visit http://www.gnu.org/licenses/ gpl-2.0.html, or visit http://xtideuniversalbios.org.",NULL
    109109
    110110; Strings for XTIDE Universal BIOS configuration menu
    111 g_szItemCfgBackToMain:  db  "Back to Main Menu",NULL
    112 g_szItemCfgIde1:        db  "Primary IDE Controller",NULL
    113 g_szItemCfgIde2:        db  "Secondary IDE Controller",NULL
    114 g_szItemCfgIde3:        db  "Tertiary IDE Controller",NULL
    115 g_szItemCfgIde4:        db  "Quaternary IDE Controller",NULL
    116 g_szItemCfgBootMenu:    db  "Boot settings",NULL
    117 g_szItemAutoConfigure:  db  "Auto Configure",NULL
    118 g_szItemCfgFullMode:    db  "Full operating mode",NULL
    119 g_szItemCfgRamVars:     db  "Use UMB for variables",NULL
    120 g_szItemCfgStealSize:   db  "kiB to steal from RAM",NULL
    121 g_szItemCfgIdeCnt:      db  "IDE controllers",NULL
    122 g_szItemCfgIdleTimeout: db  "Power Management",NULL
    123 
    124 g_szDlgAutoConfigure:   db  "Found "
    125 g_bControllersDetected: db  'x'             ; Value stored directly here
    126                         db  " controllers.",NULL
    127 g_szDlgBadBiosFound:    db  "This computer has been identified as being one of the following models:",LF,LF
    128                         db  "Zenith Data Systems Z-171",LF
    129                         db  "Zenith Data Systems Z-161",LF,LF
    130                         db  "The Boot settings menu option 'Remove other hard drives' has been set to YES for this reason.",NULL
    131 g_szDlgFomEnabled       db  "The loaded file does not support Lite mode - Full operating mode has been enabled.",NULL
    132 g_szDlgCfgFullMode:     db  "Enable full operating mode?",NULL
    133 g_szDlgCfgRamVars:      db  "Store variables in UMB?",NULL
    134 g_szDlgCfgStealSize:    db  "How many kiB of base memory to steal for XTIDE Universal BIOS variables (1...255)?",NULL
    135 g_szDlgCfgIdeCnt:       db  "How many IDE controllers to manage (1...4)?",NULL
    136 g_szDlgCfgIdleTimeout:  db  "Select the amount of time before idling drives should enter standby mode.",NULL
    137 
    138 g_szNfoCfgIde:          db  "IDE controller and drive configuration.",NULL
    139 g_szNfoCfgBootMenu:     db  "Boot configuration.",NULL
    140 g_szNfoAutoConfigure:   db  "Automatically Configure XTIDE Universal BIOS for this system.",NULL
    141 g_szNfoCfgFullMode:     db  "Full mode supports up to four controllers and has more features.",NULL
    142 g_szNfoCfgRamVars:      db  "Enter UMB segment address (FFFF=Disable UMB usage and use the top of Conventional memory instead).",NULL
    143 g_szNfoCfgStealSize:    db  "How many kiB's to steal from Conventional memory for XTIDE Universal BIOS variables.",NULL
    144 g_szNfoCfgIdeCnt:       db  "Number of IDE controllers to manage.",NULL
    145 g_szNfoCfgIdleTimeout:  db  "Enable Power Management to set the harddrive(s) to spin down after idling a certain amount of time.",NULL
    146 
    147 g_szSerialMoved:        db  "A Serial Controller has been moved to the end of the Controller list."
    148                         db  " No further action is required. Serial Controllers must be placed at the end of the list.",NULL
    149 
    150 g_szHelpCfgFullMode:    db  "Full mode supports up to 4 IDE controllers (8 drives) and requires 1 kiB of RAM to store hard disk parameters and"
    151                         db  " other variables. This bit of RAM can be reserved from the top of Conventional memory, or, if RAM is available in"
    152                         db  " the Upper Memory Area (UMA), by configuring the BIOS to use an Upper Memory Block (UMB). Full mode makes it"
    153                         db  " possible to use ROM BASIC and other software that requires the memory range where"
    154                         db  " XTIDE Universal BIOS parameters would be stored in Lite mode.",LF,LF
    155                         db  "Lite mode supports only 2 IDE controllers (4 drives) and stores parameters to the top of the interrupt vectors"
    156                         db  " (30:0h) so no Conventional memory needs to be reserved. Lite mode cannot be used if you intend to use"
    157                         db  " IBM ROM BASIC or software such as Turbo BASIC or BASICA.",LF,LF
    158                         db  "Tandy 1000 models with 640 kiB or less memory need to use Lite mode since the top of Conventional memory gets"
    159                         db  " dynamically reserved by video hardware. This happens only with Tandy integrated video controller and not when"
    160                         db  " using expansion graphics cards. It is possible to use Full mode if configuring the BIOS to use an UMB or by"
    161                         db  " reserving RAM for video memory in addition to what is required for XTIDE Universal BIOS. Most software should"
    162                         db  " work with 33 kiB reserved but some will require 65 kiB. Theoretically speaking, a lot more could be required"
    163                         db  " - it is just that we are not aware of any software with higher video memory requirements.",NULL
    164 
    165 g_szHelpCfgRamVars:     db  "The UMB segment address entered here will be used to store hard disk parameters and other variables leaving all"
    166                         db  " of the Conventional memory free for other uses.",LF,LF
    167                         db  "Do not use this option unless you know for certain that memory actually exists at this address and that it is"
    168                         db  " writable without any prerequisite chipset programming. If you are using any sort of DOS memory manager or UMB"
    169                         db  " provider then it is probably a good idea to use whatever memory range exclusion option it provides to prevent it"
    170                         db  " from trying to use this memory range. Note that only 1 kiB of the UMB will be used.",NULL
    171 
    172 g_szHelpCfgStealSize:   db  "Parameters for detected hard disks and other variables must be stored somewhere. If in Full mode, and the BIOS has"
    173                         db  " not been configured to use an UMB, then they are stored at the top of Conventional memory."
    174                         db  " 1 kiB is usually enough but you may have to reserve more if you want to use Full mode on a Tandy 1000.",NULL
    175 
    176 g_szHelpCfgIdleTimeout: db  "This option enables the standby timer for all harddrives handled by XTIDE Universal BIOS,"
    177                         db  " allowing the drives to spin down after idling the selected amount of time."
    178                         db  " Note that this does not work with old drives that lack the Power Management feature set."
    179                         db  " Also note that timeouts less than 5 minutes may cause unnecessary wear on the drives and is not recommended"
    180                         db  " (use for compatibility testing only).",NULL
     111g_szItemCfgBackToMain:      db  "Back to Main Menu",NULL
     112g_szItemCfgIde1:            db  "Primary IDE Controller",NULL
     113g_szItemCfgIde2:            db  "Secondary IDE Controller",NULL
     114g_szItemCfgIde3:            db  "Tertiary IDE Controller",NULL
     115g_szItemCfgIde4:            db  "Quaternary IDE Controller",NULL
     116g_szItemCfgBootMenu:        db  "Boot settings",NULL
     117g_szItemAutoConfigure:      db  "Auto Configure",NULL
     118g_szItemCfgFullMode:        db  "Full operating mode",NULL
     119g_szItemCfgRamVars:         db  "Use UMB for variables",NULL
     120g_szItemCfgStealSize:       db  "kiB to steal from RAM",NULL
     121g_szItemCfgIdeCnt:          db  "IDE controllers",NULL
     122g_szItemCfgIdleTimeout:     db  "Power Management",NULL
     123
     124g_szDlgAutoConfigure:       db  "Found "
     125g_bControllersDetected:     db  'x'             ; Value stored directly here
     126                            db  " controllers.",NULL
     127g_szDlgBadBiosFound:        db  "This computer has been identified as being one of the following models:",LF,LF
     128                            db  "Zenith Data Systems Z-171",LF
     129                            db  "Zenith Data Systems Z-161",LF,LF
     130                            db  "The Boot settings menu option 'Remove other hard drives' has been set to YES for this reason.",NULL
     131g_szDlgIncompatibleBuild:   db  "This computer has been identified as being in need of having the Boot settings menu option"
     132                            db  " 'Remove other hard drives' set to YES. However, this is not available on the currently loaded"
     133                            db  " BIOS because it includes MODULE_MFM_COMPATIBILITY. As a result, this particular BIOS build"
     134                            db  " cannot be used with this computer.",NULL
     135g_szDlgFomEnabled:          db  "The loaded file does not support Lite mode - Full operating mode has been enabled.",NULL
     136g_szDlgCfgFullMode:         db  "Enable full operating mode?",NULL
     137g_szDlgCfgRamVars:          db  "Store variables in UMB?",NULL
     138g_szDlgCfgStealSize:        db  "How many kiB of base memory to steal for XTIDE Universal BIOS variables (1...255)?",NULL
     139g_szDlgCfgIdeCnt:           db  "How many IDE controllers to manage (1...4)?",NULL
     140g_szDlgCfgIdleTimeout:      db  "Select the amount of time before idling drives should enter standby mode.",NULL
     141
     142g_szNfoCfgIde:              db  "IDE controller and drive configuration.",NULL
     143g_szNfoCfgBootMenu:         db  "Boot configuration.",NULL
     144g_szNfoAutoConfigure:       db  "Automatically Configure XTIDE Universal BIOS for this system.",NULL
     145g_szNfoCfgFullMode:         db  "Full mode supports up to four controllers and has more features.",NULL
     146g_szNfoCfgRamVars:          db  "Enter UMB segment address (FFFF=Disable UMB usage and use the top of Conventional memory instead).",NULL
     147g_szNfoCfgStealSize:        db  "How many kiB's to steal from Conventional memory for XTIDE Universal BIOS variables.",NULL
     148g_szNfoCfgIdeCnt:           db  "Number of IDE controllers to manage.",NULL
     149g_szNfoCfgIdleTimeout:      db  "Enable Power Management to set the harddrive(s) to spin down after idling a certain amount of time.",NULL
     150
     151g_szSerialMoved:            db  "A Serial Controller has been moved to the end of the Controller list."
     152                            db  " No further action is required. Serial Controllers must be placed at the end of the list.",NULL
     153
     154g_szHelpCfgFullMode:        db  "Full mode supports up to 4 IDE controllers (8 drives) and requires 1 kiB of RAM to store hard disk parameters and"
     155                            db  " other variables. This bit of RAM can be reserved from the top of Conventional memory, or, if RAM is available in"
     156                            db  " the Upper Memory Area (UMA), by configuring the BIOS to use an Upper Memory Block (UMB). Full mode makes it"
     157                            db  " possible to use ROM BASIC and other software that requires the memory range where"
     158                            db  " XTIDE Universal BIOS parameters would be stored in Lite mode.",LF,LF
     159                            db  "Lite mode supports only 2 IDE controllers (4 drives) and stores parameters to the top of the interrupt vectors"
     160                            db  " (30:0h) so no Conventional memory needs to be reserved. Lite mode cannot be used if you intend to use"
     161                            db  " IBM ROM BASIC or software such as Turbo BASIC or BASICA.",LF,LF
     162                            db  "Tandy 1000 models with 640 kiB or less memory need to use Lite mode since the top of Conventional memory gets"
     163                            db  " dynamically reserved by video hardware. This happens only with Tandy integrated video controller and not when"
     164                            db  " using expansion graphics cards. It is possible to use Full mode if configuring the BIOS to use an UMB or by"
     165                            db  " reserving RAM for video memory in addition to what is required for XTIDE Universal BIOS. Most software should"
     166                            db  " work with 33 kiB reserved but some will require 65 kiB. Theoretically speaking, a lot more could be required"
     167                            db  " - it is just that we are not aware of any software with higher video memory requirements.",NULL
     168
     169g_szHelpCfgRamVars:         db  "The UMB segment address entered here will be used to store hard disk parameters and other variables leaving all"
     170                            db  " of the Conventional memory free for other uses.",LF,LF
     171                            db  "Do not use this option unless you know for certain that memory actually exists at this address and that it is"
     172                            db  " writable without any prerequisite chipset programming. If you are using any sort of DOS memory manager or UMB"
     173                            db  " provider then it is probably a good idea to use whatever memory range exclusion option it provides to prevent it"
     174                            db  " from trying to use this memory range. Note that only 1 kiB of the UMB will be used.",NULL
     175
     176g_szHelpCfgStealSize:       db  "Parameters for detected hard disks and other variables must be stored somewhere. If in Full mode, and the BIOS has"
     177                            db  " not been configured to use an UMB, then they are stored at the top of Conventional memory."
     178                            db  " 1 kiB is usually enough but you may have to reserve more if you want to use Full mode on a Tandy 1000.",NULL
     179
     180g_szHelpCfgIdleTimeout:     db  "This option enables the standby timer for all harddrives handled by XTIDE Universal BIOS,"
     181                            db  " allowing the drives to spin down after idling the selected amount of time."
     182                            db  " Note that this does not work with old drives that lack the Power Management feature set."
     183                            db  " Also note that timeouts less than 5 minutes may cause unnecessary wear on the drives and is not recommended"
     184                            db  " (use for compatibility testing only).",NULL
    181185
    182186g_szMultichoiceIdleTimeout: db  "Disabled",LF
     
    483487
    484488g_szHelpBootTimeout:            db  "Boot Menu selection timeout in BIOS timer ticks (1 second = 18.2 ticks)."
    485                                 db  " When timer goes to zero, currently selected drive will be booted automatically."
    486                                 db  " Timeout can be disabled by setting this to 0.",NULL
     489                                db  " When timer goes to zero, currently selected drive will be booted automatically.",NULL
    487490g_szHelpBootDrive:              db  "Drive to be set selected by default when Boot Menu is displayed.",NULL
    488491g_szHelpColorTheme:             db  "Pick a theme from a list of several pre-defined themes to customize the colors used by the boot menu and, if"
     
    524527                                db  "Phosphor Green",LF
    525528                                db  "Moon Surface",LF
    526                                 db  "Toxic Waste",NULL
     529                                db  "Toxic Waste",LF
     530                                db  "Amethyst",LF
     531                                db  "Emerald",LF
     532                                db  "Sapphire",LF
     533                                db  "Ruby",LF
     534                                db  "Liquid Crystal Display",NULL
    527535g_szValueColorTheme0:           db  "Classic",NULL
    528536g_szValueColorTheme1:           db  "Argon",NULL
     
    531539g_szValueColorTheme4:           db  "Moon",NULL
    532540g_szValueColorTheme5:           db  "Toxic",NULL
     541g_szValueColorTheme6:           db  "Amethyst",NULL
     542g_szValueColorTheme7:           db  "Emerald",NULL
     543g_szValueColorTheme8:           db  "Sapphire",NULL
     544g_szValueColorTheme9:           db  "Ruby",NULL
     545g_szValueColorTheme10:          db  "LCD",NULL
    533546
    534547g_szMultichoiceBootFloppyDrvs:  db  "Autodetect",LF
Note: See TracChangeset for help on using the changeset viewer.