Changeset 322 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src


Ignore:
Timestamp:
Mar 11, 2012, 4:17:46 PM (13 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Commented out the FS and GS segment registers from INTPACK since we never touch them anyway.
  • Minor changes to improve speed in the Int13h handler.
  • Changed Prepare_ByValidatingSectorsInALforOldInt13h so it really doesn't corrupt anything.
  • Changed the makefile so 'make strings' now works even if StringsCompressed.asm is missing or empty.
Location:
trunk/XTIDE_Universal_BIOS/Src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm

    r294 r322  
    3030    mov     [RAMVARS.xlateVars+XLATEVARS.bXlatedDrv], dl
    3131
    32     call    FindDPT_ForDriveNumberInDL              ; DS:DI points to our DPT, or NULL if not our drive
    33     jnc     SHORT .OurFunction                      ; DPT found, this is one of our drives, and thus our function
    34 
    35     test    ah, ah
    36     jz      SHORT .OurFunction                      ; we handle all function 0h requests (resets)
    37     cmp     ah, 8
    38     jne     SHORT Int13h_DirectCallToAnotherBios    ; non-8h function, handled by foreign bios
    39 
    40 %ifndef MODULE_SERIAL_FLOPPY
    41 ; With floppy support, we handle all traffic for function 08h, as we need to wrap both hard disk and
    42 ; floppy drive counts.  Without floppy support, we handle only hard disk traffic for function 08h,
    43 ; and thus need the check below.
    44 ;
    45     test    dl, dl
    46     jns     SHORT Int13h_DirectCallToAnotherBios
    47 %endif
     32    call    FindDPT_ForDriveNumberInDL  ; DS:DI points to our DPT, or NULL if not our drive
     33    jc      SHORT .NotOurDrive          ; DPT not found so this is not one of our drives
    4834
    4935.OurFunction:
     
    6551    test    BYTE [di+DPT.bFlagsLow], FLG_DRVNHEAD_LBA
    6652    jz      SHORT Int13h_UnsupportedFunction    ; No eINT 13h for CHS drives
     53    sub     bl, 41h<<1                  ; BX = Offset to eINT 13h jump table
     54    jb      SHORT Int13h_UnsupportedFunction
    6755    cmp     ah, 48h
    6856    ja      SHORT Int13h_UnsupportedFunction
    69     sub     bl, 41h<<1                  ; BX = Offset to eINT 13h jump table
    70     jb      SHORT Int13h_UnsupportedFunction
    7157    jmp     [cs:bx+g_rgwEbiosFunctionJumpTable]
    7258%endif
    7359
     60ALIGN JUMP_ALIGN
     61.NotOurDrive:
     62    test    ah, ah
     63    jz      SHORT .OurFunction          ; We handle all function 0h requests (resets)
     64
     65%ifndef MODULE_SERIAL_FLOPPY
     66; Without floppy support, we handle only hard disk traffic for function 08h.
     67    test    dl, dl
     68    jns     SHORT Int13h_DirectCallToAnotherBios
     69%endif
     70; With floppy support, we handle all traffic for function 08h, as we need to wrap both hard disk and floppy drive counts.
     71    cmp     ah, 8
     72    je      SHORT .OurFunction
     73    ; Fall to Int13h_DirectCallToAnotherBios
    7474
    7575;--------------------------------------------------------------------
     
    103103    pop     bp  ; Standard INT 13h functions never uses BP as return register
    104104%ifdef USE_386
    105     mov     [bp+IDEPACK.intpack+INTPACK.gs], gs
    106     mov     [bp+IDEPACK.intpack+INTPACK.fs], fs
     105;   mov     [bp+IDEPACK.intpack+INTPACK.gs], gs
     106;   mov     [bp+IDEPACK.intpack+INTPACK.fs], fs
    107107%endif
    108108    mov     [bp+IDEPACK.intpack+INTPACK.es], es
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH25h_HDrvID.asm

    r305 r322  
    2222ALIGN JUMP_ALIGN
    2323AH25h_HandlerForGetDriveInformation:
    24     mov     al, 1           ; Read 1 sector
    25     call    Prepare_BufferToESSIforOldInt13hTransfer
    26     mov     ah, COMMAND_IDENTIFY_DEVICE
     24    mov     ax, (COMMAND_IDENTIFY_DEVICE << 8 | 1)      ; Read 1 sector
     25    call    Prepare_BufferToESSIforOldInt13hTransfer    ; Preserves AX
    2726    mov     bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_DRQ, FLG_STATUS_DRQ)
    2827%ifdef USE_186
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Prepare.asm

    r294 r322  
    111111    cmp     al, 128
    112112    ja      SHORT InvalidNumberOfSectorsRequested
    113     mov     ah, RET_HD_BOUNDARY
    114113    test    si, si                              ; Offset must be zero to xfer 128 sectors
    115114    jnz     SHORT CannotAlignPointerProperly
     
    120119Prepare_ReturnFromInt13hWithInvalidFunctionError:
    121120    mov     ah, RET_HD_INVALID
     121    SKIP2B  f
     122CannotAlignPointerProperly:
     123    mov     ah, RET_HD_BOUNDARY
    122124ZeroSectorsRequestedSoNoErrors:
    123 CannotAlignPointerProperly:
    124125    jmp     Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
    125126
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/DriveXlate.asm

    r294 r322  
    2020    jz      SHORT .Return           ; Return if translation disabled
    2121    xchg    di, ax                  ; Backup AX
    22     call    SwapFloppyDriveOrHardDisk
    23     xchg    ax, di
    24 .Return:
    25     ret
    2622
    27 
    28 ;--------------------------------------------------------------------
    29 ; SwapFloppyDriveOrHardDisk
    30 ;   Parameters:
    31 ;       DL:     Drive number to be possibly swapped
    32 ;       DS:     RAMVARS segment
    33 ;   Returns:
    34 ;       DL:     Translated drive number
    35 ;   Corrupts registers:
    36 ;       AX
    37 ;--------------------------------------------------------------------
    38 ALIGN JUMP_ALIGN
    39 SwapFloppyDriveOrHardDisk:
    4023    mov     ah, 80h                 ; Assume hard disk
    4124    mov     al, [RAMVARS.xlateVars+XLATEVARS.bHDSwap]
    4225    test    dl, ah                  ; Hard disk?
    43     jnz     SHORT SwapDrive         ; If so, jump to swap
     26    jnz     SHORT .SwapDrive        ; If so, jump to swap
    4427    mov     al, [RAMVARS.xlateVars+XLATEVARS.bFDSwap]
    4528    cbw
    46     ; Fall to SwapDrive
    4729
    48 ;--------------------------------------------------------------------
    49 ; SwapDrive
    50 ;   Parameters:
    51 ;       AL:     Drive number to swap to 00h/80h
    52 ;       AH:     00h/80h to be swapped to stored drive number
    53 ;       DL:     Drive number to be possibly swapped
    54 ;   Returns:
    55 ;       DL:     Translated drive number
    56 ;   Corrupts registers:
    57 ;       AL
    58 ;--------------------------------------------------------------------
    5930ALIGN JUMP_ALIGN
    60 SwapDrive:
    61     cmp     ah, dl              ; Swap DL from 00h/80h to xxh?
     31.SwapDrive:
     32    cmp     ah, dl                  ; Swap DL from 00h/80h to xxh?
    6233    je      SHORT .SwapToXXhInAL
    63     cmp     al, dl              ; Swap DL from xxh to 00h/80h?
    64     jne     SHORT .Return
     34    cmp     al, dl                  ; Swap DL from xxh to 00h/80h?
     35    jne     SHORT .RestoreAXandReturn
    6536    mov     al, ah
    6637ALIGN JUMP_ALIGN
    6738.SwapToXXhInAL:
    6839    mov     dl, al
     40ALIGN JUMP_ALIGN
     41.RestoreAXandReturn:
     42    xchg    ax, di                  ; Restore AX
    6943ALIGN JUMP_ALIGN, ret
    7044.Return:
  • trunk/XTIDE_Universal_BIOS/Src/Strings.asm

    r294 r322  
    88; Section containing code
    99SECTION .text
     10
     11; POST drive detection strings
     12g_szRomAt:      db  "%s @ %x",LF,CR,NULL
     13
     14; Boot loader strings
     15g_szTryToBoot:          db  "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
     16g_szBootSectorNotFound: db  "Boot sector "
     17g_szNotFound:           db  "not found",LF,CR,NULL
     18g_szReadError:          db  "Error %x!",LF,CR,NULL
     19
     20g_szAddressingModes:
     21g_szLCHS:       db  "L-CHS",NULL
     22g_szPCHS:       db  "P-CHS",NULL
     23g_szLBA28:      db  "LBA28",NULL
     24g_szLBA48:      db  "LBA48",NULL
     25g_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"
     41    %endif
     42%endif
    1043
    1144; Boot Menu Floppy Disk strings
     
    5386%endif
    5487
    55 ; Boot Menu menuitem strings
    56 ;
    57 ; The following strings are used by BootMenuPrint_* routines.
    58 ; To support optimizations in that code, these strings must start on the same 256 byte page,
    59 ; which is checked at assembly time below.
    60 ;
    61 g_szBootMenuPrintStart:
    62 g_szDriveNum:           db  "%x %s",NULL
    63 g_szDriveNumBOOTNFO:    db  "%x %z",NULL
    64 g_szFloppyDrv:          db  "Floppy Drive %c",NULL
    65 g_szBootMenuPrintEnd:
    66 g_szForeignHD:          db  "Foreign Hard Disk",NULL
    67 
    68 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    69     %if ((g_szBootMenuPrintStart-$$) & 0xff00) <> ((g_szBootMenuPrintEnd-$$) & 0xff00)
    70         %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"
    71     %endif
    72 %endif
    73 
    74 ; POST drive detection strings
    75 g_szRomAt:      db  "%s @ %x",LF,CR,NULL
    76 
    77 ; Boot loader strings
    78 g_szTryToBoot:          db  "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
    79 g_szBootSectorNotFound: db  "Boot sector "
    80 g_szNotFound:           db  "not found",LF,CR,NULL
    81 g_szReadError:          db  "Error %x!",LF,CR,NULL
    82 
    83 g_szAddressingModes:
    84 g_szLCHS:       db  "L-CHS",NULL
    85 g_szPCHS:       db  "P-CHS",NULL
    86 g_szLBA28:      db  "LBA28",NULL
    87 g_szLBA48:      db  "LBA48",NULL
    88 g_szAddressingModes_Displacement equ (g_szPCHS - g_szAddressingModes)
    89 ;
    90 ; Ensure that addressing modes are correctly spaced in memory
    91 ;
    92 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    93     %if g_szLCHS <> g_szAddressingModes
    94         %error "g_szAddressingModes Displacement Incorrect 1"
    95     %endif
    96     %if g_szPCHS <> g_szLCHS + g_szAddressingModes_Displacement
    97         %error "g_szAddressingModes Displacement Incorrect 2"
    98     %endif
    99     %if g_szLBA28 <> g_szPCHS + g_szAddressingModes_Displacement
    100         %error "g_szAddressingModes Displacement Incorrect 3"
    101     %endif
    102     %if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement
    103         %error "g_szAddressingModes Displacement Incorrect 4"
    104     %endif
    105 %endif
    106 
    10788g_szBusTypeValues:
    10889g_szBusTypeValues_8Dual:        db      "D8 ",NULL
     
    138119    %if g_szBusTypeValues_8MemMapped <> g_szBusTypeValues_Serial + g_szBusTypeValues_Displacement
    139120        %error "g_szBusTypeValues Displacement Incorrect 7"
     121    %endif
     122%endif
     123
     124; Boot Menu menuitem strings
     125;
     126; The following strings are used by BootMenuPrint_* routines.
     127; To support optimizations in that code, these strings must start on the same 256 byte page,
     128; which is checked at assembly time below.
     129;
     130g_szBootMenuPrintStart:
     131g_szDriveNum:           db  "%x %s",NULL
     132g_szDriveNumBOOTNFO:    db  "%x %z",NULL
     133g_szFloppyDrv:          db  "Floppy Drive %c",NULL
     134g_szBootMenuPrintEnd:
     135g_szForeignHD:          db  "Foreign Hard Disk",NULL
     136
     137%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
     138    %if ((g_szBootMenuPrintStart-$$) & 0xff00) <> ((g_szBootMenuPrintEnd-$$) & 0xff00)
     139        %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"
    140140    %endif
    141141%endif
  • trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm

    r292 r322  
    1717SECTION .text
    1818
     19; POST drive detection strings
     20g_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
     26g_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
     30g_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
     34g_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
     38g_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
     43g_szAddressingModes:
     44g_szLCHS:       ; db    "L-CHS",NULL
     45                ; db     4ch,  2dh,  43h,  48h,  53h,  00h    ; uncompressed
     46                  db     52h,  28h,  49h,  4eh,  99h          ; compressed
     47
     48g_szPCHS:       ; db    "P-CHS",NULL
     49                ; db     50h,  2dh,  43h,  48h,  53h,  00h    ; uncompressed
     50                  db     56h,  28h,  49h,  4eh,  99h          ; compressed
     51
     52g_szLBA28:      ; db    "LBA28",NULL
     53                ; db     4ch,  42h,  41h,  32h,  38h,  00h    ; uncompressed
     54                  db     52h,  48h,  47h,  2ch,  11h          ; compressed
     55
     56g_szLBA48:      ; db    "LBA48",NULL
     57                ; db     4ch,  42h,  41h,  34h,  38h,  00h    ; uncompressed
     58                  db     52h,  48h,  47h,  2eh,  11h          ; compressed
     59
     60g_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
    1979; Boot Menu Floppy Disk strings
    2080;
     
    52112%endif
    53113
    54 ; The following strings are used by DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP
     114; The following strings are used by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP
    55115; To support an optimization in that code, these strings must start on the same 256 byte page,
    56116; which is checked at assembly time below.
     
    99159%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    100160%if ((g_szDetectEnd-$$) & 0xff00) <> ((g_szDetectStart-$$) & 0xff00)
    101 %error "g_szDetect* strings must start on the same 256 byte page, required by DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP.  Please move this block up or down within strings.asm"
     161%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"
     162%endif
     163%endif
     164
     165g_szBusTypeValues:
     166g_szBusTypeValues_8Dual:        ; db        "D8 ",NULL
     167                                ; db         44h,  38h,  20h,  00h    ; uncompressed
     168                                  db         4ah,  31h,  00h          ; compressed
     169
     170g_szBusTypeValues_8Reversed:    ; db        "X8 ",NULL
     171                                ; db         58h,  38h,  20h,  00h    ; uncompressed
     172                                  db         5eh,  31h,  00h          ; compressed
     173
     174g_szBusTypeValues_8Single:      ; db        "S8 ",NULL
     175                                ; db         53h,  38h,  20h,  00h    ; uncompressed
     176                                  db         59h,  31h,  00h          ; compressed
     177
     178g_szBusTypeValues_16:           ; db        " 16",NULL
     179                                ; db         20h,  31h,  36h,  00h    ; uncompressed
     180                                  db         20h,  2bh,  10h          ; compressed
     181
     182g_szBusTypeValues_32:           ; db        " 32",NULL
     183                                ; db         20h,  33h,  32h,  00h    ; uncompressed
     184                                  db         20h,  2dh,  0ch          ; compressed
     185
     186g_szBusTypeValues_Serial:       ; db        "SER",NULL
     187                                ; db         53h,  45h,  52h,  00h    ; uncompressed
     188                                  db         59h,  4bh,  98h          ; compressed
     189
     190g_szBusTypeValues_8MemMapped:   ; db        "M8 ",NULL
     191                                ; db         4dh,  38h,  20h,  00h    ; uncompressed
     192                                  db         53h,  31h,  00h          ; compressed
     193
     194g_szBusTypeValues_Displacement equ (g_szBusTypeValues_8Reversed - g_szBusTypeValues)
     195;
     196; Ensure that bus type strings are correctly spaced in memory
     197;
     198%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
     199%if g_szBusTypeValues_8Dual <> g_szBusTypeValues
     200%error "g_szBusTypeValues Displacement Incorrect 1"
     201%endif
     202%if g_szBusTypeValues_8Reversed <> g_szBusTypeValues + g_szBusTypeValues_Displacement
     203%error "g_szBusTypeValues Displacement Incorrect 2"
     204%endif
     205%if g_szBusTypeValues_8Single <> g_szBusTypeValues_8Reversed + g_szBusTypeValues_Displacement
     206%error "g_szBusTypeValues Displacement Incorrect 3"
     207%endif
     208%if g_szBusTypeValues_16 <> g_szBusTypeValues_8Single + g_szBusTypeValues_Displacement
     209%error "g_szBusTypeValues Displacement Incorrect 4"
     210%endif
     211%if g_szBusTypeValues_32 <> g_szBusTypeValues_16 + g_szBusTypeValues_Displacement
     212%error "g_szBusTypeValues Displacement Incorrect 5"
     213%endif
     214%if g_szBusTypeValues_Serial <> g_szBusTypeValues_32 + g_szBusTypeValues_Displacement
     215%error "g_szBusTypeValues Displacement Incorrect 6"
     216%endif
     217%if g_szBusTypeValues_8MemMapped <> g_szBusTypeValues_Serial + g_szBusTypeValues_Displacement
     218%error "g_szBusTypeValues Displacement Incorrect 7"
    102219%endif
    103220%endif
     
    131248%if ((g_szBootMenuPrintStart-$$) & 0xff00) <> ((g_szBootMenuPrintEnd-$$) & 0xff00)
    132249%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"
    133 %endif
    134 %endif
    135 
    136 ; POST drive detection strings
    137 g_szRomAt:      ; db    "%s @ %x",LF,CR,NULL
    138                 ; db     25h,  73h,  20h,  40h,  20h,  25h,  78h,  0ah,  0dh,  00h    ; uncompressed
    139                   db     3eh,  20h, 0c6h,  39h,  1bh                                  ; compressed
    140 
    141 
    142 ; Boot loader strings
    143 g_szTryToBoot:          ; db    "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
    144                         ; 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
    145                           db     48h,  75h,  75h,  7ah,  6fh,  74h, 0edh,  6ch,  78h,  75h, 0f3h,  3eh,  20h,  39h,  24h,  39h,  1bh                                              ; compressed
    146 
    147 g_szBootSectorNotFound: ; db    "Boot sector "
    148                         ; db     42h,  6fh,  6fh,  74h,  20h,  73h,  65h,  63h,  74h,  6fh,  72h,  20h    ; uncompressed
    149                           db     48h,  75h,  75h, 0fah,  79h,  6bh,  69h,  7ah,  75h, 0f8h                ; compressed
    150 
    151 g_szNotFound:           ; db    "not found",LF,CR,NULL
    152                         ; db     6eh,  6fh,  74h,  20h,  66h,  6fh,  75h,  6eh,  64h,  0ah,  0dh,  00h    ; uncompressed
    153                           db     74h,  75h, 0fah,  6ch,  75h,  7bh,  74h,  6ah,  1bh                      ; compressed
    154 
    155 g_szReadError:          ; db    "Error %x!",LF,CR,NULL
    156                         ; db     45h,  72h,  72h,  6fh,  72h,  20h,  25h,  78h,  21h,  0ah,  0dh,  00h    ; uncompressed
    157                           db     4bh,  78h,  78h,  75h, 0f8h,  39h,  25h,  1bh                            ; compressed
    158 
    159 
    160 g_szAddressingModes:
    161 g_szLCHS:       ; db    "L-CHS",NULL
    162                 ; db     4ch,  2dh,  43h,  48h,  53h,  00h    ; uncompressed
    163                   db     52h,  28h,  49h,  4eh,  99h          ; compressed
    164 
    165 g_szPCHS:       ; db    "P-CHS",NULL
    166                 ; db     50h,  2dh,  43h,  48h,  53h,  00h    ; uncompressed
    167                   db     56h,  28h,  49h,  4eh,  99h          ; compressed
    168 
    169 g_szLBA28:      ; db    "LBA28",NULL
    170                 ; db     4ch,  42h,  41h,  32h,  38h,  00h    ; uncompressed
    171                   db     52h,  48h,  47h,  2ch,  11h          ; compressed
    172 
    173 g_szLBA48:      ; db    "LBA48",NULL
    174                 ; db     4ch,  42h,  41h,  34h,  38h,  00h    ; uncompressed
    175                   db     52h,  48h,  47h,  2eh,  11h          ; compressed
    176 
    177 g_szAddressingModes_Displacement equ (g_szPCHS - g_szAddressingModes)
    178 ;
    179 ; Ensure that addressing modes are correctly spaced in memory
    180 ;
    181 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    182 %if g_szLCHS <> g_szAddressingModes
    183 %error "g_szAddressingModes Displacement Incorrect 1"
    184 %endif
    185 %if g_szPCHS <> g_szLCHS + g_szAddressingModes_Displacement
    186 %error "g_szAddressingModes Displacement Incorrect 2"
    187 %endif
    188 %if g_szLBA28 <> g_szPCHS + g_szAddressingModes_Displacement
    189 %error "g_szAddressingModes Displacement Incorrect 3"
    190 %endif
    191 %if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement
    192 %error "g_szAddressingModes Displacement Incorrect 4"
    193 %endif
    194 %endif
    195 
    196 g_szBusTypeValues:
    197 g_szBusTypeValues_8Dual:        ; db        "D8 ",NULL
    198                                 ; db         44h,  38h,  20h,  00h    ; uncompressed
    199                                   db         4ah,  31h,  00h          ; compressed
    200 
    201 g_szBusTypeValues_8Reversed:    ; db        "X8 ",NULL
    202                                 ; db         58h,  38h,  20h,  00h    ; uncompressed
    203                                   db         5eh,  31h,  00h          ; compressed
    204 
    205 g_szBusTypeValues_8Single:      ; db        "S8 ",NULL
    206                                 ; db         53h,  38h,  20h,  00h    ; uncompressed
    207                                   db         59h,  31h,  00h          ; compressed
    208 
    209 g_szBusTypeValues_16:           ; db        " 16",NULL
    210                                 ; db         20h,  31h,  36h,  00h    ; uncompressed
    211                                   db         20h,  2bh,  10h          ; compressed
    212 
    213 g_szBusTypeValues_32:           ; db        " 32",NULL
    214                                 ; db         20h,  33h,  32h,  00h    ; uncompressed
    215                                   db         20h,  2dh,  0ch          ; compressed
    216 
    217 g_szBusTypeValues_Serial:       ; db        "SER",NULL
    218                                 ; db         53h,  45h,  52h,  00h    ; uncompressed
    219                                   db         59h,  4bh,  98h          ; compressed
    220 
    221 g_szBusTypeValues_8MemMapped:   ; db        "M8 ",NULL
    222                                 ; db         4dh,  38h,  20h,  00h    ; uncompressed
    223                                   db         53h,  31h,  00h          ; compressed
    224 
    225 g_szBusTypeValues_Displacement equ (g_szBusTypeValues_8Reversed - g_szBusTypeValues)
    226 ;
    227 ; Ensure that bus type strings are correctly spaced in memory
    228 ;
    229 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    230 %if g_szBusTypeValues_8Dual <> g_szBusTypeValues
    231 %error "g_szBusTypeValues Displacement Incorrect 1"
    232 %endif
    233 %if g_szBusTypeValues_8Reversed <> g_szBusTypeValues + g_szBusTypeValues_Displacement
    234 %error "g_szBusTypeValues Displacement Incorrect 2"
    235 %endif
    236 %if g_szBusTypeValues_8Single <> g_szBusTypeValues_8Reversed + g_szBusTypeValues_Displacement
    237 %error "g_szBusTypeValues Displacement Incorrect 3"
    238 %endif
    239 %if g_szBusTypeValues_16 <> g_szBusTypeValues_8Single + g_szBusTypeValues_Displacement
    240 %error "g_szBusTypeValues Displacement Incorrect 4"
    241 %endif
    242 %if g_szBusTypeValues_32 <> g_szBusTypeValues_16 + g_szBusTypeValues_Displacement
    243 %error "g_szBusTypeValues Displacement Incorrect 5"
    244 %endif
    245 %if g_szBusTypeValues_Serial <> g_szBusTypeValues_32 + g_szBusTypeValues_Displacement
    246 %error "g_szBusTypeValues Displacement Incorrect 6"
    247 %endif
    248 %if g_szBusTypeValues_8MemMapped <> g_szBusTypeValues_Serial + g_szBusTypeValues_Displacement
    249 %error "g_szBusTypeValues Displacement Incorrect 7"
    250250%endif
    251251%endif
Note: See TracChangeset for help on using the changeset viewer.