Changeset 334 in xtideuniversalbios


Ignore:
Timestamp:
Mar 13, 2012, 5:29:34 AM (13 years ago)
Author:
gregli@…
google:author:
gregli@hotmail.com
Message:

Serial server DPT flag optimization, remove Serial/IDE specific header on drive scan results, added GNU GPL v2 banner at boot.

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Assembly_Library/Inc/SerialServer.inc

    r277 r334  
    2929;
    3030SerialServer_ATA_wServerVersion         EQU     (157*2)
    31 SerialServer_ATA_wFloppyFlagAndType     EQU     (158*2)
     31SerialServer_ATA_wDriveFlags            EQU     (158*2)
    3232SerialServer_ATA_wPortAndBaud           EQU     (159*2)
    3333
  • trunk/Serial_Server/library/Image.cpp

    r284 r334  
    205205//
    206206#define ATA_wSerialServerVersion 157
    207 #define ATA_wSerialFloppyFlagAndType 158
     207#define ATA_wSerialDriveFlags 158
    208208#define ATA_wSerialPortAndBaud 159
    209209
     
    214214#define ATA_wGenCfg_FIXED 0x40
    215215
    216 #define ATA_wSerialFloppyFlagAndType_Flag 0x10
    217 #define ATA_wSerialFloppyFlagAndType_TypePosition 5
     216// These are all shifted by 1 bit to the right, so that SerialDPT_Finalize can shift them into proper position
     217// and shift the high order bit into the carry flag to indicate a floppy drive is present.
     218//
     219#define ATA_wSerialDriveFlags_Floppy    0x88
     220#define ATA_wSerialDriveFlags_Present   0x02
     221#define ATA_wSerialDriveFlags_FloppyType_FieldPosition   4
    218222
    219223struct comPorts {
     
    298302    buff[ ATA_wSerialServerVersion ] = (SERIAL_SERVER_MAJORVERSION << 8) | SERIAL_SERVER_MINORVERSION;
    299303
     304    buff[ ATA_wSerialDriveFlags ] = ATA_wSerialDriveFlags_Present;
    300305    if( floppy )
    301         buff[ ATA_wSerialFloppyFlagAndType ] =
    302             ATA_wSerialFloppyFlagAndType_Flag | (floppyType << ATA_wSerialFloppyFlagAndType_TypePosition);
     306        buff[ ATA_wSerialDriveFlags ] |=
     307            ATA_wSerialDriveFlags_Floppy | (floppyType << ATA_wSerialDriveFlags_FloppyType_FieldPosition);
    303308
    304309    // we always set this, so that the bulk of the BIOS will consider this disk as a hard disk
  • trunk/Tools/StringsCompress.pl

    r277 r334  
    6666print ";;;======================================================================\n\n";
    6767
     68print "%ifdef STRINGSCOMPRESSED_STRINGS\n\n";
    6869
    6970#
     
    182183#
    183184
     185print "%endif ; STRINGSCOMPRESSED_STRINGS\n\n";
     186print "%ifdef STRINGSCOMPRESSED_TABLES\n\n";
     187
    184188print "StringsCompressed_NormalBase     equ   ".$normal_base."\n\n";
    185189
     
    263267print ";; alphabet used count: ".$used_count."\n";
    264268
     269print "%endif ; STRINGSCOMPRESSED_TABLES\n\n";
     270
    265271#--------------------------------------------------------------------------------
    266272#
  • trunk/XTIDE_Universal_BIOS/Src/Device/Serial/SerialCommand.asm

    r292 r334  
    5454%include "SerialServer.asm"
    5555
    56 %if SerialCommand_FallThroughToSerialServer_SendReceive <> SerialServer_SendReceive
    57 %error "SerialServer_SendReceive must be the first routine at the top of SerialServer.asm in the Assembly_Library"
     56%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS       
     57    %if SerialCommand_FallThroughToSerialServer_SendReceive <> SerialServer_SendReceive
     58        %error "SerialServer_SendReceive must be the first routine at the top of SerialServer.asm in the Assembly_Library"
     59    %endif
    5860%endif
    5961
     
    163165%include "SerialServerScan.asm"
    164166
    165 %if SerialCommand_FallThroughToSerialServerScan_ScanForServer <> SerialServerScan_ScanForServer
    166 %error "SerialServerScan_ScanForServer must be the first routine at the top of SerialServerScan.asm in the Assembly_Library"
    167 %endif             
     167%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS               
     168    %if SerialCommand_FallThroughToSerialServerScan_ScanForServer <> SerialServerScan_ScanForServer
     169        %error "SerialServerScan_ScanForServer must be the first routine at the top of SerialServerScan.asm in the Assembly_Library"
     170    %endif
     171%endif
    168172
    169173
  • trunk/XTIDE_Universal_BIOS/Src/Device/Serial/SerialDPT.asm

    r277 r334  
    2525; if the floppy support is disabled.
    2626;
    27         mov     al, [es:si+SerialServer_ATA_wFloppyFlagAndType]
    28         or      al, FLGH_DPT_SERIAL_DEVICE
    29         or      byte [di+DPT.bFlagsHigh], al
    30 
    31         test    al, FLGH_DPT_SERIAL_FLOPPY           ; clears CF
    32         jz      .notfloppy
    33         stc     
    34 .notfloppy:     
     27        mov     al, [es:si+SerialServer_ATA_wDriveFlags]
     28        shl     al, 1
     29        mov     byte [di+DPT.bFlagsHigh], al
    3530       
    3631        ret
    3732
     33%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
     34    %if FLGH_DPT_SERIAL_DEVICE != 0x4 || FLGH_DPT_SERIAL_FLOPPY != 0x10 || FLGH_DPT_SERIAL_FLOPPY_TYPE_MASK != 0xe0 || FLGH_DPT_SERIAL_FLOPPY_TYPE_FIELD_POSITION != 5
     35        %error "The serial server passes FLGH values into SerialDPT_Finalize directly.  If the flag positions are changed, corresponding changes will need to be made in the serial server, and likely a version check put in to deal with servers talking to incompatible clients"
     36    %endif
     37%endif
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectPrint.asm

    r294 r334  
    4646    eCMOVE  ax, cs                          ; Use segment address for JR-IDE/ISA
    4747%endif
    48 
    49     mov     si, g_szDetectOuter             ; Load SI with default wrapper string "IDE %s at %s: "
    5048
    5149    push    bp                              ; setup stack for call to
     
    9997
    10098.pushAndPrintSerial:
    101     mov     si, g_szDetectOuterSerial       ; Finally load SI with wrapper string "Serial %s on %s: "
    102 
    10399.pushAndPrint:
    104100%endif
     
    107103    push    ax                              ; Push high order digits, or port address, or N/A
    108104    push    dx                              ; Push low order digit, or N/A
     105
     106    mov     si, g_szDetectOuter             ; Load SI with default wrapper string "IDE %s at %s: "
    109107
    110108    jmp     short DetectPrint_BootMenuPrint_FormatCSSIfromParamsInSSBP_Relay
  • trunk/XTIDE_Universal_BIOS/Src/Main.asm

    r305 r334  
    158158iend
    159159
     160    ; Strings are first to avoid them moving unnessarily when code is turned on and off with %ifdef's
     161    ; since some groups of strings need to be on the same 256-byte page.
     162    ;
     163%ifdef MODULE_STRINGS_COMPRESSED
     164    %define STRINGSCOMPRESSED_STRINGS
     165    %include "StringsCompressed.asm"
     166%else
     167    %include "Strings.asm"          ; For BIOS message strings
     168%endif
     169
    160170    ; Libraries, data, Initialization and drive detection
     171
    161172    %include "AssemblyLibrary.asm"
     173
     174    ; String compression tables need to come after the AssemblyLibrary (since they depend on addresses
     175    ; established in the assembly library), and are unncessary if strings are not compressed.
     176    ;
     177%ifdef MODULE_STRINGS_COMPRESSED
     178    %undef  STRINGSCOMPRESSED_STRINGS       
     179    %define STRINGSCOMPRESSED_TABLES
     180    %include "StringsCompressed.asm"
     181%endif
     182       
    162183    %include "Initialize.asm"       ; For BIOS initialization
    163184    %include "Interrupts.asm"       ; For Interrupt initialization
     
    165186    %include "CreateDPT.asm"        ; For creating DPTs
    166187    %include "FindDPT.asm"          ; For finding DPTs
    167 %ifdef MODULE_STRINGS_COMPRESSED
    168     %include "StringsCompressed.asm"
    169 %else
    170     %include "Strings.asm"          ; For BIOS message strings
    171 %endif
    172188    %include "AccessDPT.asm"        ; For accessing DPTs
    173189    %include "BootMenuInfo.asm"     ; For creating BOOTMENUINFO structs
  • trunk/XTIDE_Universal_BIOS/Src/Strings.asm

    r332 r334  
    99SECTION .text
    1010
    11 ; POST drive detection strings
    12 g_szRomAt:      db  "%s @ %x",LF,CR,NULL
    13 
    14 ; Boot loader strings
    15 g_szTryToBoot:          db  "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
    16 g_szBootSectorNotFound: db  "Boot sector "
    17 g_szNotFound:           db  "not found",LF,CR,NULL
    18 g_szReadError:          db  "Error %x!",LF,CR,NULL
    19 
    20 g_szAddressingModes:
    21 g_szLCHS:       db  "L-CHS",NULL
    22 g_szPCHS:       db  "P-CHS",NULL
    23 g_szLBA28:      db  "LBA28",NULL
    24 g_szLBA48:      db  "LBA48",NULL
    25 g_szAddressingModes_Displacement equ (g_szPCHS - g_szAddressingModes)
    26 ;
    27 ; Ensure that addressing modes are correctly spaced in memory
    28 ;
    29 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    30     %if g_szLCHS <> g_szAddressingModes
    31         %error "g_szAddressingModes Displacement Incorrect 1"
    32     %endif
    33     %if g_szPCHS <> g_szLCHS + g_szAddressingModes_Displacement
    34         %error "g_szAddressingModes Displacement Incorrect 2"
    35     %endif
    36     %if g_szLBA28 <> g_szPCHS + g_szAddressingModes_Displacement
    37         %error "g_szAddressingModes Displacement Incorrect 3"
    38     %endif
    39     %if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement
    40         %error "g_szAddressingModes Displacement Incorrect 4"
     11; The following strings are used by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP
     12; To support an optimization in that code, these strings must start on the same 256 byte page,
     13; which is checked at assembly time below.
     14;
     15g_szDetectStart:
     16g_szDetectMaster:       db  "Master",NULL
     17g_szDetectSlave:        db  "Slave ",NULL
     18g_szDetectOuter:        db  "%s at %s: ",NULL
     19;%%; %ifdef MODULE_SERIAL       ;%%; is stripped off after string compression, %ifdef won't compress properly
     20g_szDetectCOM:          db  "COM%c%s",NULL
     21g_szDetectCOMAuto:      db  " Detect",NULL
     22g_szDetectCOMSmall:     db  "/%u%u00",NULL                  ; IDE Master at COM1/9600:
     23g_szDetectCOMLarge:     db  "/%u.%uK",NULL                  ; IDE Master at COM1/19.2K:
     24;%%; %endif                     ;%%; is stripped off after string compression, %ifdef won't compress properly
     25g_szDetectEnd:
     26g_szDetectPort:         db  "%x",NULL                       ; IDE Master at 1F0h:
     27
     28%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
     29    %if ((g_szDetectEnd-$$) & 0xff00) <> ((g_szDetectStart-$$) & 0xff00)
     30        %error "g_szDetect* strings must start on the same 256 byte page, required by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP.  Please move this block up or down within strings.asm"
    4131    %endif
    4232%endif
     
    5949    %if ((g_szFddStart-$$) & 0xff00) <> ((g_szFddEnd-$$) & 0xff00)
    6050        %error "g_szFdd* strings must start on the same 256 byte page, required by the BootMenuPrint_RefreshInformation routines for floppy drives.  Please move this block up or down within strings.asm"
     51    %endif
     52%endif
     53
     54; POST drive detection strings
     55g_szRomAt:      db  "%s @ %x",LF,CR
     56                db  "Released under GNU GPL v2",LF,CR,LF,CR,NULL
     57
     58; Boot loader strings
     59g_szTryToBoot:          db  "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
     60g_szBootSectorNotFound: db  "Boot sector "
     61g_szNotFound:           db  "not found",LF,CR,NULL
     62g_szReadError:          db  "Error %x!",LF,CR,NULL
     63
     64g_szAddressingModes:
     65g_szLCHS:       db  "L-CHS",NULL
     66g_szPCHS:       db  "P-CHS",NULL
     67g_szLBA28:      db  "LBA28",NULL
     68g_szLBA48:      db  "LBA48",NULL
     69g_szAddressingModes_Displacement equ (g_szPCHS - g_szAddressingModes)
     70;
     71; Ensure that addressing modes are correctly spaced in memory
     72;
     73%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
     74    %if g_szLCHS <> g_szAddressingModes
     75        %error "g_szAddressingModes Displacement Incorrect 1"
     76    %endif
     77    %if g_szPCHS <> g_szLCHS + g_szAddressingModes_Displacement
     78        %error "g_szAddressingModes Displacement Incorrect 2"
     79    %endif
     80    %if g_szLBA28 <> g_szPCHS + g_szAddressingModes_Displacement
     81        %error "g_szAddressingModes Displacement Incorrect 3"
     82    %endif
     83    %if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement
     84        %error "g_szAddressingModes Displacement Incorrect 4"
    6185    %endif
    6286%endif
     
    102126g_szDashForZero:        db      "- ",NULL
    103127
     128; Boot menu bottom of screen strings
     129g_szFDD:        db  "FDD     ",NULL
     130g_szHDD:        db  "HDD     ",NULL
     131g_szRomBoot:    db  "ROM Boot",NULL
     132g_szHotkey:     db  "%A%c%c%A%s%A ",NULL
     133
     134; Boot Menu information strings
     135g_szCapacity:           db  "Capacity : %s",NULL
     136g_szCapacityNum:        db  "%5-u.%u %ciB",NULL
     137g_szInformation:        db  "%s",LF,CR
     138    db  "Addr.",SINGLE_VERTICAL,"Block",SINGLE_VERTICAL,"Bus",SINGLE_VERTICAL,  "IRQ",SINGLE_VERTICAL,"Reset",LF,CR
     139    db     "%s",SINGLE_VERTICAL, "%5-u",SINGLE_VERTICAL, "%s",SINGLE_VERTICAL," %2-I",SINGLE_VERTICAL,"%5-x" ,NULL
     140
    104141; Boot Menu menuitem strings
    105142;
     
    120157    %endif
    121158%endif
    122 
    123 ; Boot menu bottom of screen strings
    124 g_szFDD:        db  "FDD     ",NULL
    125 g_szHDD:        db  "HDD     ",NULL
    126 g_szRomBoot:    db  "ROM Boot",NULL
    127 g_szHotkey:     db  "%A%c%c%A%s%A ",NULL
    128 
    129 ; Boot Menu information strings
    130 g_szCapacity:           db  "Capacity : %s",NULL
    131 g_szCapacityNum:        db  "%5-u.%u %ciB",NULL
    132 g_szInformation:        db  "%s",LF,CR
    133     db  "Addr.",SINGLE_VERTICAL,"Block",SINGLE_VERTICAL,"Bus",SINGLE_VERTICAL,  "IRQ",SINGLE_VERTICAL,"Reset",LF,CR
    134     db     "%s",SINGLE_VERTICAL, "%5-u",SINGLE_VERTICAL, "%s",SINGLE_VERTICAL," %2-I",SINGLE_VERTICAL,"%5-x" ,NULL
    135 
    136 ; The following strings are used by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP
    137 ; To support an optimization in that code, these strings must start on the same 256 byte page,
    138 ; which is checked at assembly time below.
    139 ;
    140 g_szDetectStart:
    141 g_szDetectMaster:       db  "Master",NULL
    142 g_szDetectSlave:        db  "Slave ",NULL
    143 g_szDetectOuter:        db  "IDE %s at %s: ",NULL
    144 ;%%; %ifdef MODULE_SERIAL       ;%%; is stripped off after string compression, %ifdef won't compress properly
    145 g_szDetectOuterSerial:  db  "Serial %s on %s: ",NULL
    146 g_szDetectCOM:          db  "COM%c%s",NULL
    147 g_szDetectCOMAuto:      db  " Detect",NULL
    148 g_szDetectCOMSmall:     db  "/%u%u00",NULL                  ; IDE Master at COM1/9600:
    149 g_szDetectCOMLarge:     db  "/%u.%uK",NULL                  ; IDE Master at COM1/19.2K:
    150 ;%%; %endif                     ;%%; is stripped off after string compression, %ifdef won't compress properly
    151 g_szDetectEnd:
    152 g_szDetectPort:         db  "%x",NULL                       ; IDE Master at 1F0h:
    153 
    154 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    155     %if ((g_szDetectEnd-$$) & 0xff00) <> ((g_szDetectStart-$$) & 0xff00)
    156         %error "g_szDetect* strings must start on the same 256 byte page, required by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP.  Please move this block up or down within strings.asm"
    157     %endif
    158 %endif
    159 
     159       
    160160;------------------------------------------------------------------------------------------
    161161;
  • trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm

    r332 r334  
    77;;;======================================================================
    88
     9%ifdef STRINGSCOMPRESSED_STRINGS
     10
    911; Project name  :   XTIDE Universal BIOS
    1012; Description   :   Strings and equates for BIOS messages.
     
    1618; Section containing code
    1719SECTION .text
    18 
    19 ; POST drive detection strings
    20 g_szRomAt:      ; db    "%s @ %x",LF,CR,NULL
    21                 ; db     25h,  73h,  20h,  40h,  20h,  25h,  78h,  0ah,  0dh,  00h    ; uncompressed
    22                   db     3eh,  20h, 0c6h,  39h,  1bh                                  ; compressed
    23 
    24 
    25 ; Boot loader strings
    26 g_szTryToBoot:          ; db    "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
    27                         ; 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
    28                           db     48h,  75h,  75h,  7ah,  6fh,  74h, 0edh,  6ch,  78h,  75h, 0f3h,  3eh,  20h,  39h,  24h,  39h,  1bh                                              ; compressed
    29 
    30 g_szBootSectorNotFound: ; db    "Boot sector "
    31                         ; db     42h,  6fh,  6fh,  74h,  20h,  73h,  65h,  63h,  74h,  6fh,  72h,  20h    ; uncompressed
    32                           db     48h,  75h,  75h, 0fah,  79h,  6bh,  69h,  7ah,  75h, 0f8h                ; compressed
    33 
    34 g_szNotFound:           ; db    "not found",LF,CR,NULL
    35                         ; db     6eh,  6fh,  74h,  20h,  66h,  6fh,  75h,  6eh,  64h,  0ah,  0dh,  00h    ; uncompressed
    36                           db     74h,  75h, 0fah,  6ch,  75h,  7bh,  74h,  6ah,  1bh                      ; compressed
    37 
    38 g_szReadError:          ; db    "Error %x!",LF,CR,NULL
    39                         ; db     45h,  72h,  72h,  6fh,  72h,  20h,  25h,  78h,  21h,  0ah,  0dh,  00h    ; uncompressed
    40                           db     4bh,  78h,  78h,  75h, 0f8h,  39h,  25h,  1bh                            ; compressed
    41 
    42 
    43 g_szAddressingModes:
    44 g_szLCHS:       ; db    "L-CHS",NULL
    45                 ; db     4ch,  2dh,  43h,  48h,  53h,  00h    ; uncompressed
    46                   db     52h,  28h,  49h,  4eh,  99h          ; compressed
    47 
    48 g_szPCHS:       ; db    "P-CHS",NULL
    49                 ; db     50h,  2dh,  43h,  48h,  53h,  00h    ; uncompressed
    50                   db     56h,  28h,  49h,  4eh,  99h          ; compressed
    51 
    52 g_szLBA28:      ; db    "LBA28",NULL
    53                 ; db     4ch,  42h,  41h,  32h,  38h,  00h    ; uncompressed
    54                   db     52h,  48h,  47h,  2ch,  11h          ; compressed
    55 
    56 g_szLBA48:      ; db    "LBA48",NULL
    57                 ; db     4ch,  42h,  41h,  34h,  38h,  00h    ; uncompressed
    58                   db     52h,  48h,  47h,  2eh,  11h          ; compressed
    59 
    60 g_szAddressingModes_Displacement equ (g_szPCHS - g_szAddressingModes)
    61 ;
    62 ; Ensure that addressing modes are correctly spaced in memory
    63 ;
    64 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    65 %if g_szLCHS <> g_szAddressingModes
    66 %error "g_szAddressingModes Displacement Incorrect 1"
    67 %endif
    68 %if g_szPCHS <> g_szLCHS + g_szAddressingModes_Displacement
    69 %error "g_szAddressingModes Displacement Incorrect 2"
    70 %endif
    71 %if g_szLBA28 <> g_szPCHS + g_szAddressingModes_Displacement
    72 %error "g_szAddressingModes Displacement Incorrect 3"
    73 %endif
    74 %if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement
    75 %error "g_szAddressingModes Displacement Incorrect 4"
    76 %endif
    77 %endif
    78 
    79 ; Boot Menu Floppy Disk strings
    80 ;
    81 ; The following strings are used by BootMenuPrint_RefreshInformation
    82 ; To support optimizations in that code, these strings must start on the same 256 byte page,
    83 ; which is checked at assembly time below.
    84 ;
    85 g_szFddStart:
    86 g_szFddUnknown: ; db    "Unknown",NULL
    87                 ; db     55h,  6eh,  6bh,  6eh,  6fh,  77h,  6eh,  00h    ; uncompressed
    88                   db     5bh,  74h,  71h,  74h,  75h,  7dh, 0b4h          ; compressed
    89 
    90 g_szFddSizeOr:  ; db    "5",ONE_QUARTER,QUOTATION_MARK," or 3",ONE_HALF,QUOTATION_MARK," DD",NULL
    91                 ; db     35h, 0ach,  22h,  20h,  6fh,  72h,  20h,  33h, 0abh,  22h,  20h,  44h,  44h,  00h    ; uncompressed
    92                   db     2fh,  21h,  26h,  20h,  75h, 0f8h,  2dh,  22h,  26h,  20h,  4ah,  8ah                ; compressed
    93 
    94 g_szFddSize:    ; db    "%s",QUOTATION_MARK,", %u kiB",NULL ; 3½", 1440 kiB
    95                 ; db     25h,  73h,  22h,  2ch,  20h,  25h,  75h,  20h,  6bh,  69h,  42h,  00h    ; uncompressed
    96                   db     3eh,  26h,  27h,  20h,  37h,  20h,  71h,  6fh,  88h                      ; compressed
    97 
    98 g_szFddThreeHalf:       ; db  "3",ONE_HALF,NULL
    99                         ; db   33h, 0abh,  00h    ; uncompressed
    100                           db   2dh,  02h          ; compressed
    101 
    102 g_szFddEnd:
    103 g_szFddFiveQuarter:     ; db  "5",ONE_QUARTER,NULL
    104                         ; db   35h, 0ach,  00h    ; uncompressed
    105                           db   2fh,  01h          ; compressed
    106 
    107 
    108 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    109 %if ((g_szFddStart-$$) & 0xff00) <> ((g_szFddEnd-$$) & 0xff00)
    110 %error "g_szFdd* strings must start on the same 256 byte page, required by the BootMenuPrint_RefreshInformation routines for floppy drives.  Please move this block up or down within strings.asm"
    111 %endif
    112 %endif
    113 
    114 g_szBusTypeValues:
    115 g_szBusTypeValues_8Dual:        ; db        "D8 ",NULL
    116                                 ; db         44h,  38h,  20h,  00h    ; uncompressed
    117                                   db         4ah,  31h,  00h          ; compressed
    118 
    119 g_szBusTypeValues_8Reversed:    ; db        "X8 ",NULL
    120                                 ; db         58h,  38h,  20h,  00h    ; uncompressed
    121                                   db         5eh,  31h,  00h          ; compressed
    122 
    123 g_szBusTypeValues_8Single:      ; db        "S8 ",NULL
    124                                 ; db         53h,  38h,  20h,  00h    ; uncompressed
    125                                   db         59h,  31h,  00h          ; compressed
    126 
    127 g_szBusTypeValues_16:           ; db        " 16",NULL
    128                                 ; db         20h,  31h,  36h,  00h    ; uncompressed
    129                                   db         20h,  2bh,  10h          ; compressed
    130 
    131 g_szBusTypeValues_32:           ; db        " 32",NULL
    132                                 ; db         20h,  33h,  32h,  00h    ; uncompressed
    133                                   db         20h,  2dh,  0ch          ; compressed
    134 
    135 g_szBusTypeValues_Serial:       ; db        "SER",NULL
    136                                 ; db         53h,  45h,  52h,  00h    ; uncompressed
    137                                   db         59h,  4bh,  98h          ; compressed
    138 
    139 g_szBusTypeValues_8MemMapped:   ; db        "M8 ",NULL
    140                                 ; db         4dh,  38h,  20h,  00h    ; uncompressed
    141                                   db         53h,  31h,  00h          ; compressed
    142 
    143 g_szBusTypeValues_Displacement equ (g_szBusTypeValues_8Reversed - g_szBusTypeValues)
    144 ;
    145 ; Ensure that bus type strings are correctly spaced in memory
    146 ;
    147 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    148 %if g_szBusTypeValues_8Dual <> g_szBusTypeValues
    149 %error "g_szBusTypeValues Displacement Incorrect 1"
    150 %endif
    151 %if g_szBusTypeValues_8Reversed <> g_szBusTypeValues + g_szBusTypeValues_Displacement
    152 %error "g_szBusTypeValues Displacement Incorrect 2"
    153 %endif
    154 %if g_szBusTypeValues_8Single <> g_szBusTypeValues_8Reversed + g_szBusTypeValues_Displacement
    155 %error "g_szBusTypeValues Displacement Incorrect 3"
    156 %endif
    157 %if g_szBusTypeValues_16 <> g_szBusTypeValues_8Single + g_szBusTypeValues_Displacement
    158 %error "g_szBusTypeValues Displacement Incorrect 4"
    159 %endif
    160 %if g_szBusTypeValues_32 <> g_szBusTypeValues_16 + g_szBusTypeValues_Displacement
    161 %error "g_szBusTypeValues Displacement Incorrect 5"
    162 %endif
    163 %if g_szBusTypeValues_Serial <> g_szBusTypeValues_32 + g_szBusTypeValues_Displacement
    164 %error "g_szBusTypeValues Displacement Incorrect 6"
    165 %endif
    166 %if g_szBusTypeValues_8MemMapped <> g_szBusTypeValues_Serial + g_szBusTypeValues_Displacement
    167 %error "g_szBusTypeValues Displacement Incorrect 7"
    168 %endif
    169 %endif
    170 
    171 g_szSelectionTimeout:   ; db        DOUBLE_BOTTOM_LEFT_CORNER,DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL,"%ASelection in %2-u s",NULL
    172                         ; db        0c8h, 0b5h,  25h,  41h,  53h,  65h,  6ch,  65h,  63h,  74h,  69h,  6fh,  6eh,  20h,  69h,  6eh,  20h,  25h,  32h,  2dh,  75h,  20h,  73h,  00h    ; uncompressed
    173                           db         32h,  33h,  3dh,  59h,  6bh,  72h,  6bh,  69h,  7ah,  6fh,  75h, 0f4h,  6fh, 0f4h,  3ch,  20h, 0b9h                                              ; compressed
    174 
    175 
    176 g_szDashForZero:        ; db        "- ",NULL
    177                         ; db         2dh,  20h,  00h    ; uncompressed
    178                           db         28h,  00h          ; compressed
    179 
    180 
    181 ; Boot Menu menuitem strings
    182 ;
    183 ; The following strings are used by BootMenuPrint_* routines.
    184 ; To support optimizations in that code, these strings must start on the same 256 byte page,
    185 ; which is checked at assembly time below.
    186 ;
    187 g_szBootMenuPrintStart:
    188 g_szDriveNum:           ; db    "%x %s",NULL
    189                         ; db     25h,  78h,  20h,  25h,  73h,  00h    ; uncompressed
    190                           db     39h,  20h,  1eh                      ; compressed
    191 
    192 g_szDriveNumBOOTNFO:    ; db    "%x %z",NULL
    193                         ; db     25h,  78h,  20h,  25h,  7ah,  00h    ; uncompressed
    194                           db     39h,  20h,  1fh                      ; compressed
    195 
    196 g_szFloppyDrv:          ; db    "Floppy Drive %c",NULL
    197                         ; db     46h,  6ch,  6fh,  70h,  70h,  79h,  20h,  44h,  72h,  69h,  76h,  65h,  20h,  25h,  63h,  00h    ; uncompressed
    198                           db     4ch,  72h,  75h,  76h,  76h, 0ffh,  4ah,  78h,  6fh,  7ch, 0ebh,  15h                            ; compressed
    199 
    200 g_szBootMenuPrintEnd:
    201 g_szForeignHD:          ; db    "Foreign Hard Disk",NULL
    202                         ; db     46h,  6fh,  72h,  65h,  69h,  67h,  6eh,  20h,  48h,  61h,  72h,  64h,  20h,  44h,  69h,  73h,  6bh,  00h    ; uncompressed
    203                           db     4ch,  75h,  78h,  6bh,  6fh,  6dh, 0f4h,  4eh,  67h,  78h, 0eah,  4ah,  6fh,  79h, 0b1h                      ; compressed
    204 
    205 
    206 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    207 %if ((g_szBootMenuPrintStart-$$) & 0xff00) <> ((g_szBootMenuPrintEnd-$$) & 0xff00)
    208 %error "g_szBootMenuPrint* strings must start on the same 256 byte page, required by the BootMenuPrint_* routines.  Please move this block up or down within strings.asm"
    209 %endif
    210 %endif
    211 
    212 ; Boot menu bottom of screen strings
    213 g_szFDD:        ; db    "FDD     ",NULL
    214                 ; db     46h,  44h,  44h,  20h,  20h,  20h,  20h,  20h,  00h    ; uncompressed
    215                   db     4ch,  4ah, 0cah,  20h,  20h,  20h,  00h                ; compressed
    216 
    217 g_szHDD:        ; db    "HDD     ",NULL
    218                 ; db     48h,  44h,  44h,  20h,  20h,  20h,  20h,  20h,  00h    ; uncompressed
    219                   db     4eh,  4ah, 0cah,  20h,  20h,  20h,  00h                ; compressed
    220 
    221 g_szRomBoot:    ; db    "ROM Boot",NULL
    222                 ; db     52h,  4fh,  4dh,  20h,  42h,  6fh,  6fh,  74h,  00h    ; uncompressed
    223                   db     58h,  55h, 0d3h,  48h,  75h,  75h, 0bah                ; compressed
    224 
    225 g_szHotkey:     ; db    "%A%c%c%A%s%A ",NULL
    226                 ; db     25h,  41h,  25h,  63h,  25h,  63h,  25h,  41h,  25h,  73h,  25h,  41h,  20h,  00h    ; uncompressed
    227                   db     3dh,  35h,  35h,  3dh,  3eh,  3dh,  00h                                              ; compressed
    228 
    229 
    230 ; Boot Menu information strings
    231 g_szCapacity:           ; db    "Capacity : %s",NULL
    232                         ; db     43h,  61h,  70h,  61h,  63h,  69h,  74h,  79h,  20h,  3ah,  20h,  25h,  73h,  00h    ; uncompressed
    233                           db     49h,  67h,  76h,  67h,  69h,  6fh,  7ah, 0ffh, 0c0h,  1eh                            ; compressed
    234 
    235 g_szCapacityNum:        ; db    "%5-u.%u %ciB",NULL
    236                         ; db     25h,  35h,  2dh,  75h,  2eh,  25h,  75h,  20h,  25h,  63h,  69h,  42h,  00h    ; uncompressed
    237                           db     38h,  29h,  37h,  20h,  35h,  6fh,  88h                                        ; compressed
    238 
    239 g_szInformation:        ; db    "%s",LF,CR
    240                         ; db     25h,  73h,  0ah,  0dh    ; uncompressed
    241                           db     3eh,  3bh                ; compressed
    242 
    243     ; db    "Addr.",SINGLE_VERTICAL,"Block",SINGLE_VERTICAL,"Bus",SINGLE_VERTICAL,  "IRQ",SINGLE_VERTICAL,"Reset",LF,CR
    244     ; db     41h,  64h,  64h,  72h,  2eh, 0b3h,  42h,  6ch,  6fh,  63h,  6bh, 0b3h,  42h,  75h,  73h, 0b3h,  49h,  52h,  51h, 0b3h,  52h,  65h,  73h,  65h,  74h,  0ah,  0dh    ; uncompressed
    245       db     47h,  6ah,  6ah,  78h,  29h,  23h,  48h,  72h,  75h,  69h,  71h,  23h,  48h,  7bh,  79h,  23h,  4fh,  58h,  57h,  23h,  58h,  6bh,  79h,  6bh,  7ah,  3bh          ; compressed
    246 
    247     ; db       "%s",SINGLE_VERTICAL, "%5-u",SINGLE_VERTICAL, "%s",SINGLE_VERTICAL," %2-I",SINGLE_VERTICAL,"%5-x" ,NULL
    248     ; db        25h,  73h, 0b3h,  25h,  35h,  2dh,  75h, 0b3h,  25h,  73h, 0b3h,  20h,  25h,  32h,  2dh,  49h, 0b3h,  25h,  35h,  2dh,  78h,  00h    ; uncompressed
    249       db        3eh,  23h,  38h,  23h,  3eh,  23h,  20h,  36h,  23h,  1ah                                                                            ; compressed
    250 
    25120
    25221; The following strings are used by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP
     
    26332                          db     59h,  72h,  67h,  7ch,  6bh,  00h          ; compressed
    26433
    265 g_szDetectOuter:        ; db    "IDE %s at %s: ",NULL
    266                         ; db     49h,  44h,  45h,  20h,  25h,  73h,  20h,  61h,  74h,  20h,  25h,  73h,  3ah,  20h,  00h    ; uncompressed
    267                           db     4fh,  4ah, 0cbh,  3eh,  20h,  67h, 0fah,  3eh,  40h,  00h                                  ; compressed
     34g_szDetectOuter:        ; db    "%s at %s: ",NULL
     35                        ; db     25h,  73h,  20h,  61h,  74h,  20h,  25h,  73h,  3ah,  20h,  00h    ; uncompressed
     36                          db     3eh,  20h,  67h, 0fah,  3eh,  40h,  00h                            ; compressed
    26837
    26938%ifdef MODULE_SERIAL        ;%%; is stripped off after string compression, %ifdef won't compress properly
    270 g_szDetectOuterSerial:  ; db    "Serial %s on %s: ",NULL
    271                         ; db     53h,  65h,  72h,  69h,  61h,  6ch,  20h,  25h,  73h,  20h,  6fh,  6eh,  20h,  25h,  73h,  3ah,  20h,  00h    ; uncompressed
    272                           db     59h,  6bh,  78h,  6fh,  67h, 0f2h,  3eh,  20h,  75h, 0f4h,  3eh,  40h,  00h                                  ; compressed
    273 
    27439g_szDetectCOM:          ; db  "COM%c%s",NULL
    27540                        ; db   43h,  4fh,  4dh,  25h,  63h,  25h,  73h,  00h    ; uncompressed
     
    29863%if ((g_szDetectEnd-$$) & 0xff00) <> ((g_szDetectStart-$$) & 0xff00)
    29964%error "g_szDetect* strings must start on the same 256 byte page, required by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP.  Please move this block up or down within strings.asm"
     65%endif
     66%endif
     67
     68; Boot Menu Floppy Disk strings
     69;
     70; The following strings are used by BootMenuPrint_RefreshInformation
     71; To support optimizations in that code, these strings must start on the same 256 byte page,
     72; which is checked at assembly time below.
     73;
     74g_szFddStart:
     75g_szFddUnknown: ; db    "Unknown",NULL
     76                ; db     55h,  6eh,  6bh,  6eh,  6fh,  77h,  6eh,  00h    ; uncompressed
     77                  db     5bh,  74h,  71h,  74h,  75h,  7dh, 0b4h          ; compressed
     78
     79g_szFddSizeOr:  ; db    "5",ONE_QUARTER,QUOTATION_MARK," or 3",ONE_HALF,QUOTATION_MARK," DD",NULL
     80                ; db     35h, 0ach,  22h,  20h,  6fh,  72h,  20h,  33h, 0abh,  22h,  20h,  44h,  44h,  00h    ; uncompressed
     81                  db     2fh,  21h,  26h,  20h,  75h, 0f8h,  2dh,  22h,  26h,  20h,  4ah,  8ah                ; compressed
     82
     83g_szFddSize:    ; db    "%s",QUOTATION_MARK,", %u kiB",NULL ; 3½", 1440 kiB
     84                ; db     25h,  73h,  22h,  2ch,  20h,  25h,  75h,  20h,  6bh,  69h,  42h,  00h    ; uncompressed
     85                  db     3eh,  26h,  27h,  20h,  37h,  20h,  71h,  6fh,  88h                      ; compressed
     86
     87g_szFddThreeHalf:       ; db  "3",ONE_HALF,NULL
     88                        ; db   33h, 0abh,  00h    ; uncompressed
     89                          db   2dh,  02h          ; compressed
     90
     91g_szFddEnd:
     92g_szFddFiveQuarter:     ; db  "5",ONE_QUARTER,NULL
     93                        ; db   35h, 0ach,  00h    ; uncompressed
     94                          db   2fh,  01h          ; compressed
     95
     96
     97%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
     98%if ((g_szFddStart-$$) & 0xff00) <> ((g_szFddEnd-$$) & 0xff00)
     99%error "g_szFdd* strings must start on the same 256 byte page, required by the BootMenuPrint_RefreshInformation routines for floppy drives.  Please move this block up or down within strings.asm"
     100%endif
     101%endif
     102
     103; POST drive detection strings
     104g_szRomAt:      ; db    "%s @ %x",LF,CR
     105                ; db     25h,  73h,  20h,  40h,  20h,  25h,  78h,  0ah,  0dh    ; uncompressed
     106                  db     3eh,  20h, 0c6h,  39h,  3bh                            ; compressed
     107
     108    ; db  "Released under GNU GPL v2",LF,CR,LF,CR,NULL
     109    ; db   52h,  65h,  6ch,  65h,  61h,  73h,  65h,  64h,  20h,  75h,  6eh,  64h,  65h,  72h,  20h,  47h,  4eh,  55h,  20h,  47h,  50h,  4ch,  20h,  76h,  32h,  0ah,  0dh,  0ah,  0dh,  00h    ; uncompressed
     110      db   58h,  6bh,  72h,  6bh,  67h,  79h,  6bh, 0eah,  7bh,  74h,  6ah,  6bh, 0f8h,  4dh,  54h, 0dbh,  4dh,  56h, 0d2h,  7ch,  2ch,  3bh,  1bh                                              ; compressed
     111
     112
     113; Boot loader strings
     114g_szTryToBoot:          ; db    "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
     115                        ; 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
     116                          db     48h,  75h,  75h,  7ah,  6fh,  74h, 0edh,  6ch,  78h,  75h, 0f3h,  3eh,  20h,  39h,  24h,  39h,  1bh                                              ; compressed
     117
     118g_szBootSectorNotFound: ; db    "Boot sector "
     119                        ; db     42h,  6fh,  6fh,  74h,  20h,  73h,  65h,  63h,  74h,  6fh,  72h,  20h    ; uncompressed
     120                          db     48h,  75h,  75h, 0fah,  79h,  6bh,  69h,  7ah,  75h, 0f8h                ; compressed
     121
     122g_szNotFound:           ; db    "not found",LF,CR,NULL
     123                        ; db     6eh,  6fh,  74h,  20h,  66h,  6fh,  75h,  6eh,  64h,  0ah,  0dh,  00h    ; uncompressed
     124                          db     74h,  75h, 0fah,  6ch,  75h,  7bh,  74h,  6ah,  1bh                      ; compressed
     125
     126g_szReadError:          ; db    "Error %x!",LF,CR,NULL
     127                        ; db     45h,  72h,  72h,  6fh,  72h,  20h,  25h,  78h,  21h,  0ah,  0dh,  00h    ; uncompressed
     128                          db     4bh,  78h,  78h,  75h, 0f8h,  39h,  25h,  1bh                            ; compressed
     129
     130
     131g_szAddressingModes:
     132g_szLCHS:       ; db    "L-CHS",NULL
     133                ; db     4ch,  2dh,  43h,  48h,  53h,  00h    ; uncompressed
     134                  db     52h,  28h,  49h,  4eh,  99h          ; compressed
     135
     136g_szPCHS:       ; db    "P-CHS",NULL
     137                ; db     50h,  2dh,  43h,  48h,  53h,  00h    ; uncompressed
     138                  db     56h,  28h,  49h,  4eh,  99h          ; compressed
     139
     140g_szLBA28:      ; db    "LBA28",NULL
     141                ; db     4ch,  42h,  41h,  32h,  38h,  00h    ; uncompressed
     142                  db     52h,  48h,  47h,  2ch,  11h          ; compressed
     143
     144g_szLBA48:      ; db    "LBA48",NULL
     145                ; db     4ch,  42h,  41h,  34h,  38h,  00h    ; uncompressed
     146                  db     52h,  48h,  47h,  2eh,  11h          ; compressed
     147
     148g_szAddressingModes_Displacement equ (g_szPCHS - g_szAddressingModes)
     149;
     150; Ensure that addressing modes are correctly spaced in memory
     151;
     152%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
     153%if g_szLCHS <> g_szAddressingModes
     154%error "g_szAddressingModes Displacement Incorrect 1"
     155%endif
     156%if g_szPCHS <> g_szLCHS + g_szAddressingModes_Displacement
     157%error "g_szAddressingModes Displacement Incorrect 2"
     158%endif
     159%if g_szLBA28 <> g_szPCHS + g_szAddressingModes_Displacement
     160%error "g_szAddressingModes Displacement Incorrect 3"
     161%endif
     162%if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement
     163%error "g_szAddressingModes Displacement Incorrect 4"
     164%endif
     165%endif
     166
     167g_szBusTypeValues:
     168g_szBusTypeValues_8Dual:        ; db        "D8 ",NULL
     169                                ; db         44h,  38h,  20h,  00h    ; uncompressed
     170                                  db         4ah,  31h,  00h          ; compressed
     171
     172g_szBusTypeValues_8Reversed:    ; db        "X8 ",NULL
     173                                ; db         58h,  38h,  20h,  00h    ; uncompressed
     174                                  db         5eh,  31h,  00h          ; compressed
     175
     176g_szBusTypeValues_8Single:      ; db        "S8 ",NULL
     177                                ; db         53h,  38h,  20h,  00h    ; uncompressed
     178                                  db         59h,  31h,  00h          ; compressed
     179
     180g_szBusTypeValues_16:           ; db        " 16",NULL
     181                                ; db         20h,  31h,  36h,  00h    ; uncompressed
     182                                  db         20h,  2bh,  10h          ; compressed
     183
     184g_szBusTypeValues_32:           ; db        " 32",NULL
     185                                ; db         20h,  33h,  32h,  00h    ; uncompressed
     186                                  db         20h,  2dh,  0ch          ; compressed
     187
     188g_szBusTypeValues_Serial:       ; db        "SER",NULL
     189                                ; db         53h,  45h,  52h,  00h    ; uncompressed
     190                                  db         59h,  4bh,  98h          ; compressed
     191
     192g_szBusTypeValues_8MemMapped:   ; db        "M8 ",NULL
     193                                ; db         4dh,  38h,  20h,  00h    ; uncompressed
     194                                  db         53h,  31h,  00h          ; compressed
     195
     196g_szBusTypeValues_Displacement equ (g_szBusTypeValues_8Reversed - g_szBusTypeValues)
     197;
     198; Ensure that bus type strings are correctly spaced in memory
     199;
     200%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
     201%if g_szBusTypeValues_8Dual <> g_szBusTypeValues
     202%error "g_szBusTypeValues Displacement Incorrect 1"
     203%endif
     204%if g_szBusTypeValues_8Reversed <> g_szBusTypeValues + g_szBusTypeValues_Displacement
     205%error "g_szBusTypeValues Displacement Incorrect 2"
     206%endif
     207%if g_szBusTypeValues_8Single <> g_szBusTypeValues_8Reversed + g_szBusTypeValues_Displacement
     208%error "g_szBusTypeValues Displacement Incorrect 3"
     209%endif
     210%if g_szBusTypeValues_16 <> g_szBusTypeValues_8Single + g_szBusTypeValues_Displacement
     211%error "g_szBusTypeValues Displacement Incorrect 4"
     212%endif
     213%if g_szBusTypeValues_32 <> g_szBusTypeValues_16 + g_szBusTypeValues_Displacement
     214%error "g_szBusTypeValues Displacement Incorrect 5"
     215%endif
     216%if g_szBusTypeValues_Serial <> g_szBusTypeValues_32 + g_szBusTypeValues_Displacement
     217%error "g_szBusTypeValues Displacement Incorrect 6"
     218%endif
     219%if g_szBusTypeValues_8MemMapped <> g_szBusTypeValues_Serial + g_szBusTypeValues_Displacement
     220%error "g_szBusTypeValues Displacement Incorrect 7"
     221%endif
     222%endif
     223
     224g_szSelectionTimeout:   ; db        DOUBLE_BOTTOM_LEFT_CORNER,DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL,"%ASelection in %2-u s",NULL
     225                        ; db        0c8h, 0b5h,  25h,  41h,  53h,  65h,  6ch,  65h,  63h,  74h,  69h,  6fh,  6eh,  20h,  69h,  6eh,  20h,  25h,  32h,  2dh,  75h,  20h,  73h,  00h    ; uncompressed
     226                          db         32h,  33h,  3dh,  59h,  6bh,  72h,  6bh,  69h,  7ah,  6fh,  75h, 0f4h,  6fh, 0f4h,  3ch,  20h, 0b9h                                              ; compressed
     227
     228
     229g_szDashForZero:        ; db        "- ",NULL
     230                        ; db         2dh,  20h,  00h    ; uncompressed
     231                          db         28h,  00h          ; compressed
     232
     233
     234; Boot menu bottom of screen strings
     235g_szFDD:        ; db    "FDD     ",NULL
     236                ; db     46h,  44h,  44h,  20h,  20h,  20h,  20h,  20h,  00h    ; uncompressed
     237                  db     4ch,  4ah, 0cah,  20h,  20h,  20h,  00h                ; compressed
     238
     239g_szHDD:        ; db    "HDD     ",NULL
     240                ; db     48h,  44h,  44h,  20h,  20h,  20h,  20h,  20h,  00h    ; uncompressed
     241                  db     4eh,  4ah, 0cah,  20h,  20h,  20h,  00h                ; compressed
     242
     243g_szRomBoot:    ; db    "ROM Boot",NULL
     244                ; db     52h,  4fh,  4dh,  20h,  42h,  6fh,  6fh,  74h,  00h    ; uncompressed
     245                  db     58h,  55h, 0d3h,  48h,  75h,  75h, 0bah                ; compressed
     246
     247g_szHotkey:     ; db    "%A%c%c%A%s%A ",NULL
     248                ; db     25h,  41h,  25h,  63h,  25h,  63h,  25h,  41h,  25h,  73h,  25h,  41h,  20h,  00h    ; uncompressed
     249                  db     3dh,  35h,  35h,  3dh,  3eh,  3dh,  00h                                              ; compressed
     250
     251
     252; Boot Menu information strings
     253g_szCapacity:           ; db    "Capacity : %s",NULL
     254                        ; db     43h,  61h,  70h,  61h,  63h,  69h,  74h,  79h,  20h,  3ah,  20h,  25h,  73h,  00h    ; uncompressed
     255                          db     49h,  67h,  76h,  67h,  69h,  6fh,  7ah, 0ffh, 0c0h,  1eh                            ; compressed
     256
     257g_szCapacityNum:        ; db    "%5-u.%u %ciB",NULL
     258                        ; db     25h,  35h,  2dh,  75h,  2eh,  25h,  75h,  20h,  25h,  63h,  69h,  42h,  00h    ; uncompressed
     259                          db     38h,  29h,  37h,  20h,  35h,  6fh,  88h                                        ; compressed
     260
     261g_szInformation:        ; db    "%s",LF,CR
     262                        ; db     25h,  73h,  0ah,  0dh    ; uncompressed
     263                          db     3eh,  3bh                ; compressed
     264
     265    ; db    "Addr.",SINGLE_VERTICAL,"Block",SINGLE_VERTICAL,"Bus",SINGLE_VERTICAL,  "IRQ",SINGLE_VERTICAL,"Reset",LF,CR
     266    ; db     41h,  64h,  64h,  72h,  2eh, 0b3h,  42h,  6ch,  6fh,  63h,  6bh, 0b3h,  42h,  75h,  73h, 0b3h,  49h,  52h,  51h, 0b3h,  52h,  65h,  73h,  65h,  74h,  0ah,  0dh    ; uncompressed
     267      db     47h,  6ah,  6ah,  78h,  29h,  23h,  48h,  72h,  75h,  69h,  71h,  23h,  48h,  7bh,  79h,  23h,  4fh,  58h,  57h,  23h,  58h,  6bh,  79h,  6bh,  7ah,  3bh          ; compressed
     268
     269    ; db       "%s",SINGLE_VERTICAL, "%5-u",SINGLE_VERTICAL, "%s",SINGLE_VERTICAL," %2-I",SINGLE_VERTICAL,"%5-x" ,NULL
     270    ; db        25h,  73h, 0b3h,  25h,  35h,  2dh,  75h, 0b3h,  25h,  73h, 0b3h,  20h,  25h,  32h,  2dh,  49h, 0b3h,  25h,  35h,  2dh,  78h,  00h    ; uncompressed
     271      db        3eh,  23h,  38h,  23h,  3eh,  23h,  20h,  36h,  23h,  1ah                                                                            ; compressed
     272
     273
     274; Boot Menu menuitem strings
     275;
     276; The following strings are used by BootMenuPrint_* routines.
     277; To support optimizations in that code, these strings must start on the same 256 byte page,
     278; which is checked at assembly time below.
     279;
     280g_szBootMenuPrintStart:
     281g_szDriveNum:           ; db    "%x %s",NULL
     282                        ; db     25h,  78h,  20h,  25h,  73h,  00h    ; uncompressed
     283                          db     39h,  20h,  1eh                      ; compressed
     284
     285g_szDriveNumBOOTNFO:    ; db    "%x %z",NULL
     286                        ; db     25h,  78h,  20h,  25h,  7ah,  00h    ; uncompressed
     287                          db     39h,  20h,  1fh                      ; compressed
     288
     289g_szFloppyDrv:          ; db    "Floppy Drive %c",NULL
     290                        ; db     46h,  6ch,  6fh,  70h,  70h,  79h,  20h,  44h,  72h,  69h,  76h,  65h,  20h,  25h,  63h,  00h    ; uncompressed
     291                          db     4ch,  72h,  75h,  76h,  76h, 0ffh,  4ah,  78h,  6fh,  7ch, 0ebh,  15h                            ; compressed
     292
     293g_szBootMenuPrintEnd:
     294g_szForeignHD:          ; db    "Foreign Hard Disk",NULL
     295                        ; db     46h,  6fh,  72h,  65h,  69h,  67h,  6eh,  20h,  48h,  61h,  72h,  64h,  20h,  44h,  69h,  73h,  6bh,  00h    ; uncompressed
     296                          db     4ch,  75h,  78h,  6bh,  6fh,  6dh, 0f4h,  4eh,  67h,  78h, 0eah,  4ah,  6fh,  79h, 0b1h                      ; compressed
     297
     298
     299%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
     300%if ((g_szBootMenuPrintStart-$$) & 0xff00) <> ((g_szBootMenuPrintEnd-$$) & 0xff00)
     301%error "g_szBootMenuPrint* strings must start on the same 256 byte page, required by the BootMenuPrint_* routines.  Please move this block up or down within strings.asm"
    300302%endif
    301303%endif
     
    356358
    357359;;; end of input stream
     360
     361%endif ; STRINGSCOMPRESSED_STRINGS
     362
     363%ifdef STRINGSCOMPRESSED_TABLES
    358364
    359365StringsCompressed_NormalBase     equ   58
     
    433439;; translated usage stats
    434440;; 33:1
    435 ;; 32:33
     441;; 32:31
    436442;; 181:1
    437443;; 53:2
     
    441447;; 179:8
    442448;; 44:1
    443 ;; 50:2
     449;; 50:3
    444450;; 51:3
    445451;; 47:2
     
    460466;; 5-u:2
    461467;; x:7
    462 ;; s:14
     468;; s:12
    463469;; 5-x:1
    464 ;; nl:6
     470;; nl:8
    465471;; 2-I:1
    466472;; c:5
     
    470476
    471477;; alphabet usage stats
    472 ;; 58,::3
     478;; 58,::2
    473479;; 59,;:
    474480;; 60,<:
     
    480486;; 66,B:9
    481487;; 67,C:4
    482 ;; 68,D:11
    483 ;; 69,E:3
     488;; 68,D:10
     489;; 69,E:2
    484490;; 70,F:3
    485 ;; 71,G:
     491;; 71,G:2
    486492;; 72,H:4
    487 ;; 73,I:2
     493;; 73,I:1
    488494;; 74,J:
    489495;; 75,K:1
    490 ;; 76,L:3
     496;; 76,L:4
    491497;; 77,M:4
    492 ;; 78,N:
     498;; 78,N:1
    493499;; 79,O:2
    494 ;; 80,P:1
     500;; 80,P:2
    495501;; 81,Q:1
    496 ;; 82,R:4
    497 ;; 83,S:7
     502;; 82,R:5
     503;; 83,S:6
    498504;; 84,T:
    499 ;; 85,U:1
     505;; 85,U:2
    500506;; 86,V:
    501507;; 87,W:
     
    512518;; 98,b:
    513519;; 99,c:5
    514 ;; 100,d:4
    515 ;; 101,e:12
     520;; 100,d:6
     521;; 101,e:15
    516522;; 102,f:2
    517523;; 103,g:2
    518524;; 104,h:
    519 ;; 105,i:10
     525;; 105,i:9
    520526;; 106,j:
    521527;; 107,k:4
     
    523529;; 109,m:1
    524530;; 110,n:10
    525 ;; 111,o:18
     531;; 111,o:17
    526532;; 112,p:3
    527533;; 113,q:
    528534;; 114,r:12
    529 ;; 115,s:6
     535;; 115,s:7
    530536;; 116,t:12
    531 ;; 117,u:2
    532 ;; 118,v:2
     537;; 117,u:3
     538;; 118,v:3
    533539;; 119,w:1
    534540;; 120,x:
    535541;; 121,y:2
    536 ;; alphabet used count: 40
     542;; alphabet used count: 42
     543%endif ; STRINGSCOMPRESSED_TABLES
     544
Note: See TracChangeset for help on using the changeset viewer.