Changeset 189 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS


Ignore:
Timestamp:
Nov 16, 2011, 6:29:32 AM (13 years ago)
Author:
gregli@…
google:author:
gregli@hotmail.com
Message:

Additional space optimizations, including making IdleProcessing an option in MENUEVENT. Note the fall-through from one file to another, but that there are assembler checks to ensure the proper linkage is maintained. First version of StringsCompress.pl, a perl script to make StringsCompressed.asm from Strings.asm.

Location:
trunk/XTIDE_Universal_BIOS/Src
Files:
1 added
6 edited

Legend:

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

    r183 r189  
    44; Section containing code
    55SECTION .text
    6 
    7 struc ITEM_TYPE_REFRESH
    8     .HardDisk           resb    2
    9     .FloppyDrive        resb    2
    10 endstruc
    11 
    126
    137;--------------------------------------------------------------------
     
    2923    add     bx, BootMenuEvent_Handler
    3024    jmp     bx
     25
     26MENUEVENT_InitializeMenuinitFromDSSI equ  (BootMenuEvent_Handler.InitializeMenuinitFromDSSI - BootMenuEvent_Handler)
     27MENUEVENT_ExitMenu equ  (BootMenuEvent_Handler.EventCompleted - BootMenuEvent_Handler)
     28MENUEVENT_ItemHighlightedFromCX equ (BootMenuEvent_Handler.ItemHighlightedFromCX - BootMenuEvent_Handler)
     29MENUEVENT_ItemSelectedFromCX equ (BootMenuEvent_Handler.ItemSelectedFromCX - BootMenuEvent_Handler)
     30MENUEVENT_KeyStrokeInAX equ (BootMenuEvent_Handler.KeyStrokeInAX - BootMenuEvent_Handler)
     31MENUEVENT_RefreshTitle equ (BootMenuPrint_TitleStrings - BootMenuEvent_Handler)
     32MENUEVENT_RefreshInformation equ (BootMenuEvent_Handler.RefreshInformation - BootMenuEvent_Handler)
     33MENUEVENT_RefreshItemFromCX equ (BootMenuEvent_Handler.RefreshItemFromCX - BootMenuEvent_Handler)
     34;
     35; Note that there is no entry for MENUEVENT_IdleProcessing.  If MENUEVENT_IDLEPROCESSING_ENABLE is not %defined,
     36; then the entry point will not be called (saving memory on this end and at the CALL point).
     37;
    3138       
    3239%else
     
    3542    ja      SHORT .EventNotHandled
    3643    jmp     [cs:bx+.rgfnEventSpecificHandlers]
    37        
    38 %endif
    39        
     44
    4045.EventNotHandled:
    4146    clc
    4247    ret
    43 
    44 %ifdef MENUEVENT_INLINE_OFFSETS
    45        
    46 MENUEVENT_InitializeMenuinitFromDSSI equ  (BootMenuEvent_Handler.InitializeMenuinitFromDSSI - BootMenuEvent_Handler)
    47 MENUEVENT_ExitMenu equ  (BootMenuEvent_Handler.EventCompleted - BootMenuEvent_Handler)
    48 MENUEVENT_IdleProcessing equ (BootMenuEvent_Handler.EventNotHandled - BootMenuEvent_Handler)
    49 MENUEVENT_ItemHighlightedFromCX equ (BootMenuEvent_Handler.ItemHighlightedFromCX - BootMenuEvent_Handler)
    50 MENUEVENT_ItemSelectedFromCX equ (BootMenuEvent_Handler.ItemSelectedFromCX - BootMenuEvent_Handler)
    51 MENUEVENT_KeyStrokeInAX equ (BootMenuEvent_Handler.KeyStrokeInAX - BootMenuEvent_Handler)
    52 MENUEVENT_RefreshTitle equ (BootMenuPrint_TitleStrings - BootMenuEvent_Handler)
    53 MENUEVENT_RefreshInformation equ (BootMenuEvent_Handler.RefreshInformation - BootMenuEvent_Handler)
    54 MENUEVENT_RefreshItemFromCX equ (BootMenuEvent_Handler.RefreshItemFromCX - BootMenuEvent_Handler)
    55 
    56 %else
    5748       
    5849ALIGN WORD_ALIGN
     
    162153ALIGN JUMP_ALIGN
    163154.RefreshItemFromCX:
    164     mov     bx, .rgwItemTypeRefresh
    165     jmp     SHORT .RefreshItemOrInformationWithJumpTableInCSBX
    166 
    167 
     155    mov     bl,00h
     156    SKIP2B  dx      ; dx corrupted below by BootMenu_GetDriveToDXforMenuitemInCX
     157    ; Fall to .RefreshInformation
     158       
    168159; Parameters:
    169160;   CX:         Index of highlighted item
    170161;   Cursor has been positioned to the beginning of first line
    171 ALIGN JUMP_ALIGN
    172162.RefreshInformation:
    173     mov     bx, .rgwInformationItemTypeRefresh
     163    mov     bl,040h
    174164    ; Fall to .RefreshItemOrInformationWithJumpTableInCSBX
    175165
     
    188178    call    RamVars_GetSegmentToDS
    189179    call    BootMenu_GetDriveToDXforMenuitemInCX
    190     test    dl, dl                  ; Floppy drive?
    191     jns     SHORT .DrawFloppyDrive
    192     jmp     [cs:bx+ITEM_TYPE_REFRESH.HardDisk]
     180    or      bl,dl
     181    shl     bl,1
     182    jc      SHORT BootMenuPrint_HardDiskMenuitem
     183       
     184;;;
     185;;; Fall-through (to BootMenuPrint_FloppyMenuitem)
     186;;; (checked at assembler time with the code after BootMenuPrint_FloppyMenuitem)
     187;;;
    193188ALIGN JUMP_ALIGN
    194 .DrawFloppyDrive:
    195     jmp     [cs:bx+ITEM_TYPE_REFRESH.FloppyDrive]
     189BootMenuEvent_FallThroughToFloppyMenuitem: 
    196190
    197 ; Jump tables for .RefreshItemOrInformationWithJumpTableInCSBX
    198 ALIGN WORD_ALIGN
    199 .rgwItemTypeRefresh:
    200 istruc ITEM_TYPE_REFRESH
    201     at  ITEM_TYPE_REFRESH.HardDisk,         dw  BootMenuPrint_HardDiskMenuitem
    202     at  ITEM_TYPE_REFRESH.FloppyDrive,      dw  BootMenuPrint_FloppyMenuitem
    203 iend
    204 .rgwInformationItemTypeRefresh:
    205 istruc ITEM_TYPE_REFRESH
    206     at  ITEM_TYPE_REFRESH.HardDisk,         dw  BootMenuPrint_HardDiskMenuitemInformation
    207     at  ITEM_TYPE_REFRESH.FloppyDrive,      dw  BootMenuPrint_FloppyMenuitemInformation
    208 iend
  • trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrint.asm

    r186 r189  
    55SECTION .text
    66
     7;;;
     8;;; Fall-through from BootMenuEvent.asm!
     9;;; BootMenuPrint_FloppyMenuitem must be the first routine in this file
     10;;; (checked at assembler time with the code after BootMenuPrint_FloppyMenuitem)
     11;;;
     12;--------------------------------------------------------------------
     13; BootMenuPrint_FloppyMenuitem
     14;   Parameters:
     15;       DL:     Untranslated Floppy Drive number
     16;   Returns:
     17;       Nothing
     18;   Corrupts registers:
     19;       AX, DX, SI, DI
     20;--------------------------------------------------------------------
     21ALIGN JUMP_ALIGN
     22BootMenuPrint_FloppyMenuitem:
     23    js      BootMenuPrint_FloppyMenuitemInformation
     24    call    PrintDriveNumberAfterTranslationFromDL
     25    push    bp
     26    mov     bp, sp
     27    mov     si, g_szFDLetter
     28    ePUSH_T ax, g_szFloppyDrv
     29    add     dl, 'A'
     30    push    dx                  ; Drive letter
     31    jmp     BootMenuPrint_FormatCSSIfromParamsInSSBP
     32
     33%if BootMenuPrint_FloppyMenuitem <> BootMenuEvent_FallThroughToFloppyMenuitem
     34%error "BootMenuPrint.asm must follow BootMenuEvent.asm, and BootMenuPrint_FloppyMenuitem must be the first routine in BootMenuPrint.asm"
     35%endif
     36       
    737;--------------------------------------------------------------------
    838; BootMenuPrint_ClearScreen
     
    81111
    82112;--------------------------------------------------------------------
    83 ; BootMenuPrint_FloppyMenuitem
    84 ;   Parameters:
    85 ;       DL:     Untranslated Floppy Drive number
    86 ;   Returns:
    87 ;       Nothing
    88 ;   Corrupts registers:
    89 ;       AX, DX, SI, DI
    90 ;--------------------------------------------------------------------
    91 ALIGN JUMP_ALIGN
    92 BootMenuPrint_FloppyMenuitem:
    93     call    PrintDriveNumberAfterTranslationFromDL
    94     push    bp
    95     mov     bp, sp
    96     mov     si, g_szFDLetter
    97     ePUSH_T ax, g_szFloppyDrv
    98     add     dl, 'A'
    99     push    dx                  ; Drive letter
    100     jmp     BootMenuPrint_FormatCSSIfromParamsInSSBP
    101 
    102 
    103 ;--------------------------------------------------------------------
    104113; BootMenuPrint_HardDiskMenuitem
    105114;   Parameters:
     
    113122ALIGN JUMP_ALIGN
    114123BootMenuPrint_HardDiskMenuitem:
     124    js      BootMenuPrint_HardDiskMenuitemInformation
    115125    call    PrintDriveNumberAfterTranslationFromDL
    116126    call    RamVars_IsDriveHandledByThisBIOS
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectDrives.asm

    r179 r189  
    2121    mov     bp, ROMVARS.ideVars0            ; CS:BP now points to first IDEVARS
    2222.DriveDetectLoop:
     23    mov     si,g_szDetect
    2324    call    .DetectDrives_WithIDEVARS       ; Detect Master and Slave
    2425    add     bp, BYTE IDEVARS_size           ; Point to next IDEVARS
     
    2930    jz      .done
    3031    mov     bp, ROMVARS.ideVarsSerialAuto
     32    mov     si,g_szSerial
    3133;;; fall-through       
    3234%else
     
    4244;       DS:         RAMVARS segment
    4345;       ES:         Zero (BDA segment)
     46;       SI:         Ptr to template string
    4447;   Returns:
    4548;       Nothing
     
    4952.DetectDrives_WithIDEVARS:
    5053    push    cx
     54       
     55    push    si
    5156    mov     ax, g_szMaster
    5257    mov     bh, MASK_DRVNHEAD_SET                               ; Select Master drive
    5358    call    StartDetectionWithDriveSelectByteInBHandStringInAX  ; Detect and create DPT + BOOTNFO
    54 
     59    pop     si
     60       
    5561    mov     ax, g_szSlave
    5662    mov     bh, MASK_DRVNHEAD_SET | FLG_DRVNHEAD_DRV
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectPrint.asm

    r120 r189  
    3030;       CS:AX:  Ptr to "Master" or "Slave" string
    3131;       CS:BP:  Ptr to IDEVARS
     32;       SI:     Ptr to template string
    3233;   Returns:
    3334;       Nothing
     
    3738DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP:
    3839    push    bp
    39     mov     si, [cs:bp+IDEVARS.wPort]
     40    mov     di, [cs:bp+IDEVARS.wPort]
    4041    mov     bp, sp
    4142    push    ax                          ; Push "Master" or "Slave"
    42     push    si                          ; Push port number
    43     mov     si, g_szDetect
     43    push    di                          ; Push port number
    4444    jmp     BootMenuPrint_FormatCSSIfromParamsInSSBP
    4545
  • trunk/XTIDE_Universal_BIOS/Src/Strings.asm

    r186 r189  
    1414g_szSlave:      db  "Slave ",NULL
    1515g_szDetect:     db  "IDE %s at %x: ",NULL           ; IDE Master at 1F0h:
    16 
     16g_szSerial:     db  "Serial Port %s: ",NULL
    1717
    1818; Boot loader strings
  • trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm

    r186 r189  
    1818
    1919; POST drive detection strings
    20 g_szRomAt:
    21  db  034h, 020h, 0c6h, 039h, 01bh
    22 ; source:  25h, 73h, 20h, 40h, 20h, 25h, 78h, 0Ah, 0Dh, 00h
    23 
    24 g_szMaster:
    25  db  053h, 067h, 079h, 07ah, 06bh, 0b8h
    26 ; source:  4Dh, 61h, 73h, 74h, 65h, 72h, 00h
    27 
    28 g_szSlave:
    29  db  059h, 072h, 067h, 07ch, 06bh, 000h
    30 ; source:  53h, 6Ch, 61h, 76h, 65h, 20h, 00h
    31 
    32 g_szDetect:
    33  db  04fh, 04ah, 0cbh, 034h, 020h, 067h, 0fah, 039h, 040h, 000h
    34 ; source:  49h, 44h, 45h, 20h, 25h, 73h, 20h, 61h, 74h, 20h, 25h, 78h, 3Ah, 20h, 00h
    35 
     20g_szRomAt:      ; db    "%s @ %x",LF,CR,NULL
     21                ; db     25h,  73h,  20h,  40h,  20h,  25h,  78h,  0ah,  0dh,  00h    ; uncompressed
     22                  db     34h,  20h, 0c6h,  39h,  1bh                                  ; compressed
     23
     24g_szMaster:     ; db    "Master",NULL
     25                ; db     4dh,  61h,  73h,  74h,  65h,  72h,  00h    ; uncompressed
     26                  db     53h,  67h,  79h,  7ah,  6bh, 0b8h          ; compressed
     27
     28g_szSlave:      ; db    "Slave ",NULL
     29                ; db     53h,  6ch,  61h,  76h,  65h,  20h,  00h    ; uncompressed
     30                  db     59h,  72h,  67h,  7ch,  6bh,  00h          ; compressed
     31
     32g_szDetect:     ; db    "IDE %s at %x: ",NULL           ; IDE Master at 1F0h:
     33                ; db     49h,  44h,  45h,  20h,  25h,  73h,  20h,  61h,  74h,  20h,  25h,  78h,  3ah,  20h,  00h    ; uncompressed
     34                  db     4fh,  4ah, 0cbh,  34h,  20h,  67h, 0fah,  39h,  40h,  00h                                  ; compressed
     35
     36g_szSerial:     ; db    "Serial Port %s: ",NULL
     37                ; db     53h,  65h,  72h,  69h,  61h,  6ch,  20h,  50h,  6fh,  72h,  74h,  20h,  25h,  73h,  3ah,  20h,  00h    ; uncompressed
     38                  db     59h,  6bh,  78h,  6fh,  67h, 0f2h,  56h,  75h,  78h, 0fah,  34h,  40h,  00h                            ; compressed
    3639
    3740
    3841; Boot loader strings
    39 g_szTryToBoot:
    40  db  048h, 075h, 075h, 07ah, 06fh, 074h, 0edh, 06ch, 078h, 075h, 0f3h, 034h, 020h, 039h, 024h, 039h, 01bh
    41 ; source:  42h, 6Fh, 6Fh, 74h, 69h, 6Eh, 67h, 20h, 66h, 72h, 6Fh, 6Dh, 20h, 25h, 73h, 20h, 25h, 78h, AFh, 25h, 78h, 0Ah, 0Dh, 00h
    42 
    43 g_szBootSectorNotFound:
    44  db  048h, 075h, 075h, 0fah, 079h, 06bh, 069h, 07ah, 075h, 078h, 020h
    45 ; source:  42h, 6Fh, 6Fh, 74h, 20h, 73h, 65h, 63h, 74h, 6Fh, 72h, 20h
    46 
    47 g_szNotFound:
    48  db  074h, 075h, 0fah, 06ch, 075h, 07bh, 074h, 06ah, 01bh
    49 ; source:  6Eh, 6Fh, 74h, 20h, 66h, 6Fh, 75h, 6Eh, 64h, 0Ah, 0Dh, 00h
    50 
    51 g_szReadError:
    52  db  04bh, 078h, 078h, 075h, 0f8h, 039h, 025h, 01bh
    53 ; source:  45h, 72h, 72h, 6Fh, 72h, 20h, 25h, 78h, 21h, 0Ah, 0Dh, 00h
     42g_szTryToBoot:          ; db    "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
     43                        ; 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
     44                          db     48h,  75h,  75h,  7ah,  6fh,  74h, 0edh,  6ch,  78h,  75h, 0f3h,  34h,  20h,  39h,  24h,  39h,  1bh                                              ; compressed
     45
     46g_szBootSectorNotFound: ; db    "Boot sector "
     47                        ; db     42h,  6fh,  6fh,  74h,  20h,  73h,  65h,  63h,  74h,  6fh,  72h,  20h    ; uncompressed
     48                          db     48h,  75h,  75h, 0fah,  79h,  6bh,  69h,  7ah,  75h, 0f8h                ; compressed
     49
     50g_szNotFound:           ; db    "not found",LF,CR,NULL
     51                        ; db     6eh,  6fh,  74h,  20h,  66h,  6fh,  75h,  6eh,  64h,  0ah,  0dh,  00h    ; uncompressed
     52                          db     74h,  75h, 0fah,  6ch,  75h,  7bh,  74h,  6ah,  1bh                      ; compressed
     53
     54g_szReadError:          ; db    "Error %x!",LF,CR,NULL
     55                        ; db     45h,  72h,  72h,  6fh,  72h,  20h,  25h,  78h,  21h,  0ah,  0dh,  00h    ; uncompressed
     56                          db     4bh,  78h,  78h,  75h, 0f8h,  39h,  25h,  1bh                            ; compressed
    5457
    5558
    5659; Boot menu bottom of screen strings
    57 g_szFDD:
    58  db  04ch, 04ah, 0cah, 020h, 020h, 020h, 000h
    59 ; source:  46h, 44h, 44h, 20h, 20h, 20h, 20h, 20h, 00h
    60 
    61 g_szHDD:
    62  db  04eh, 04ah, 0cah, 020h, 020h, 020h, 000h
    63 ; source:  48h, 44h, 44h, 20h, 20h, 20h, 20h, 20h, 00h
    64 
    65 g_szRomBoot:
    66  db  058h, 055h, 0d3h, 048h, 075h, 075h, 0bah
    67 ; source:  52h, 4Fh, 4Dh, 20h, 42h, 6Fh, 6Fh, 74h, 00h
    68 
    69 g_szHotkey:
    70  db  03dh, 035h, 035h, 03dh, 034h, 03dh, 000h
    71 ; source:  25h, 41h, 25h, 63h, 25h, 63h, 25h, 41h, 25h, 73h, 25h, 41h, 20h, 00h
     60g_szFDD:        ; db    "FDD     ",NULL
     61                ; db     46h,  44h,  44h,  20h,  20h,  20h,  20h,  20h,  00h    ; uncompressed
     62                  db     4ch,  4ah, 0cah,  20h,  20h,  20h,  00h                ; compressed
     63
     64g_szHDD:        ; db    "HDD     ",NULL
     65                ; db     48h,  44h,  44h,  20h,  20h,  20h,  20h,  20h,  00h    ; uncompressed
     66                  db     4eh,  4ah, 0cah,  20h,  20h,  20h,  00h                ; compressed
     67
     68g_szRomBoot:    ; db    "ROM Boot",NULL
     69                ; db     52h,  4fh,  4dh,  20h,  42h,  6fh,  6fh,  74h,  00h    ; uncompressed
     70                  db     58h,  55h, 0d3h,  48h,  75h,  75h, 0bah                ; compressed
     71
     72g_szHotkey:     ; db    "%A%c%c%A%s%A ",NULL
     73                ; db     25h,  41h,  25h,  63h,  25h,  63h,  25h,  41h,  25h,  73h,  25h,  41h,  20h,  00h    ; uncompressed
     74                  db     3dh,  35h,  35h,  3dh,  34h,  3dh,  00h                                              ; compressed
    7275
    7376
    7477
    7578; Boot Menu menuitem strings
    76 g_szDriveNum:
    77  db  039h, 000h
    78 ; source:  25h, 78h, 20h, 00h
    79 
    80 g_szFDLetter:
    81  db  034h, 020h, 015h
    82 ; source:  25h, 73h, 20h, 25h, 63h, 00h
    83 
    84 g_szFloppyDrv:
    85  db  04ch, 072h, 075h, 076h, 076h, 0ffh, 04ah, 078h, 06fh, 07ch, 0abh
    86 ; source:  46h, 6Ch, 6Fh, 70h, 70h, 79h, 20h, 44h, 72h, 69h, 76h, 65h, 00h
    87 
    88 g_szforeignHD:
    89  db  04ch, 075h, 078h, 06bh, 06fh, 06dh, 0f4h, 04eh, 067h, 078h, 0eah, 04ah, 06fh, 079h, 0b1h
    90 ; source:  46h, 6Fh, 72h, 65h, 69h, 67h, 6Eh, 20h, 48h, 61h, 72h, 64h, 20h, 44h, 69h, 73h, 6Bh, 00h
     79g_szDriveNum:   ; db    "%x ",NULL
     80                ; db     25h,  78h,  20h,  00h    ; uncompressed
     81                  db     39h,  00h                ; compressed
     82
     83g_szFDLetter:   ; db    "%s %c",NULL
     84                ; db     25h,  73h,  20h,  25h,  63h,  00h    ; uncompressed
     85                  db     34h,  20h,  15h                      ; compressed
     86
     87g_szFloppyDrv:  ; db    "Floppy Drive",NULL
     88                ; db     46h,  6ch,  6fh,  70h,  70h,  79h,  20h,  44h,  72h,  69h,  76h,  65h,  00h    ; uncompressed
     89                  db     4ch,  72h,  75h,  76h,  76h, 0ffh,  4ah,  78h,  6fh,  7ch, 0abh                ; compressed
     90
     91g_szforeignHD:  ; db    "Foreign Hard Disk",NULL
     92                ; db     46h,  6fh,  72h,  65h,  69h,  67h,  6eh,  20h,  48h,  61h,  72h,  64h,  20h,  44h,  69h,  73h,  6bh,  00h    ; uncompressed
     93                  db     4ch,  75h,  78h,  6bh,  6fh,  6dh, 0f4h,  4eh,  67h,  78h, 0eah,  4ah,  6fh,  79h, 0b1h                      ; compressed
    9194
    9295
    9396; Boot Menu information strings
    94 g_szCapacity:
    95  db  049h, 067h, 076h, 067h, 069h, 06fh, 07ah, 0ffh, 040h, 000h
    96 ; source:  43h, 61h, 70h, 61h, 63h, 69h, 74h, 79h, 20h, 3Ah, 20h, 00h
    97 
    98 g_szSizeSingle:
    99  db  034h, 037h, 029h, 037h, 020h, 035h, 06fh, 088h
    100 ; source:  25h, 73h, 25h, 75h, 2Eh, 25h, 75h, 20h, 25h, 63h, 69h, 42h, 00h
    101 
    102 g_szSizeDual:
    103  db  034h, 038h, 029h, 037h, 020h, 035h, 06fh, 0c8h, 02ah, 038h, 029h, 037h, 020h, 035h, 06fh, 048h, 01bh
    104 ; source:  25h, 73h, 25h, 35h, 2Dh, 75h, 2Eh, 25h, 75h, 20h, 25h, 63h, 69h, 42h, 20h, 2Fh, 25h, 35h, 2Dh, 75h, 2Eh, 25h, 75h, 20h, 25h, 63h, 69h, 42h, 0Ah, 0Dh, 00h
    105 
    106 g_szCfgHeader:
    107  db  047h, 06ah, 06ah, 078h, 029h, 023h, 048h, 072h, 075h, 069h, 071h, 023h, 048h, 07bh, 079h, 023h, 04fh, 058h, 057h, 023h, 058h, 06bh, 079h, 06bh, 07ah, 01bh
    108 ; source:  41h, 64h, 64h, 72h, 2Eh, B3h, 42h, 6Ch, 6Fh, 63h, 6Bh, B3h, 42h, 75h, 73h, B3h, 49h, 52h, 51h, B3h, 52h, 65h, 73h, 65h, 74h, 0Ah, 0Dh, 00h
    109 
    110 g_szCfgFormat:
    111  db  034h, 023h, 038h, 023h, 034h, 023h, 020h, 036h, 023h, 01ah
    112 ; source:  25h, 73h, B3h, 25h, 35h, 2Dh, 75h, B3h, 25h, 73h, B3h, 20h, 25h, 32h, 2Dh, 49h, B3h, 25h, 35h, 2Dh, 78h, 00h
     97g_szCapacity:   ; db    "Capacity : ",NULL
     98                ; db     43h,  61h,  70h,  61h,  63h,  69h,  74h,  79h,  20h,  3ah,  20h,  00h    ; uncompressed
     99                  db     49h,  67h,  76h,  67h,  69h,  6fh,  7ah, 0ffh,  40h,  00h                ; compressed
     100
     101g_szSizeSingle: ; db    "%s%u.%u %ciB",NULL
     102                ; db     25h,  73h,  25h,  75h,  2eh,  25h,  75h,  20h,  25h,  63h,  69h,  42h,  00h    ; uncompressed
     103                  db     34h,  37h,  29h,  37h,  20h,  35h,  6fh,  88h                                  ; compressed
     104
     105g_szSizeDual:   ; db    "%s%5-u.%u %ciB /%5-u.%u %ciB",LF,CR,NULL
     106                ; db     25h,  73h,  25h,  35h,  2dh,  75h,  2eh,  25h,  75h,  20h,  25h,  63h,  69h,  42h,  20h,  2fh,  25h,  35h,  2dh,  75h,  2eh,  25h,  75h,  20h,  25h,  63h,  69h,  42h,  0ah,  0dh,  00h    ; uncompressed
     107                  db     34h,  38h,  29h,  37h,  20h,  35h,  6fh, 0c8h,  2ah,  38h,  29h,  37h,  20h,  35h,  6fh,  48h,  1bh                                                                                        ; compressed
     108
     109g_szCfgHeader:  ; db    "Addr.",SINGLE_VERTICAL,"Block",SINGLE_VERTICAL,"Bus",  SINGLE_VERTICAL,"IRQ",  SINGLE_VERTICAL,"Reset",LF,CR,NULL
     110                ; 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,  00h    ; uncompressed
     111                  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,  1bh                ; compressed
     112
     113g_szCfgFormat:  ; db    "%s"   ,SINGLE_VERTICAL,"%5-u", SINGLE_VERTICAL,"%s",SINGLE_VERTICAL," %2-I",SINGLE_VERTICAL,"%5-x",  NULL
     114                ; db     25h,  73h, 0b3h,  25h,  35h,  2dh,  75h, 0b3h,  25h,  73h, 0b3h,  20h,  25h,  32h,  2dh,  49h, 0b3h,  25h,  35h,  2dh,  78h,  00h    ; uncompressed
     115                  db     34h,  23h,  38h,  23h,  34h,  23h,  20h,  36h,  23h,  1ah                                                                            ; compressed
    113116
    114117
    115118g_szAddressingModes:                   
    116 g_szLCHS:
    117  db  052h, 028h, 049h, 04eh, 099h
    118 ; source:  4Ch, 2Dh, 43h, 48h, 53h, 00h
    119 
    120 g_szPCHS:
    121  db  056h, 028h, 049h, 04eh, 099h
    122 ; source:  50h, 2Dh, 43h, 48h, 53h, 00h
    123 
    124 g_szLBA28:
    125  db  052h, 048h, 047h, 02ch, 011h
    126 ; source:  4Ch, 42h, 41h, 32h, 38h, 00h
    127 
    128 g_szLBA48:
    129  db  052h, 048h, 047h, 02eh, 011h
    130 ; source:  4Ch, 42h, 41h, 34h, 38h, 00h
     119g_szLCHS:       ; db    "L-CHS",NULL
     120                ; db     4ch,  2dh,  43h,  48h,  53h,  00h    ; uncompressed
     121                  db     52h,  28h,  49h,  4eh,  99h          ; compressed
     122
     123g_szPCHS:       ; db    "P-CHS",NULL
     124                ; db     50h,  2dh,  43h,  48h,  53h,  00h    ; uncompressed
     125                  db     56h,  28h,  49h,  4eh,  99h          ; compressed
     126
     127g_szLBA28:      ; db    "LBA28",NULL
     128                ; db     4ch,  42h,  41h,  32h,  38h,  00h    ; uncompressed
     129                  db     52h,  48h,  47h,  2ch,  11h          ; compressed
     130
     131g_szLBA48:      ; db    "LBA48",NULL
     132                ; db     4ch,  42h,  41h,  34h,  38h,  00h    ; uncompressed
     133                  db     52h,  48h,  47h,  2eh,  11h          ; compressed
    131134
    132135g_szAddressingModes_Displacement equ (g_szPCHS - g_szAddressingModes)
     
    147150%endif             
    148151
    149 g_szFddUnknown:
    150  db  034h, 05bh, 074h, 071h, 074h, 075h, 07dh, 0b4h
    151 ; source:  25h, 73h, 55h, 6Eh, 6Bh, 6Eh, 6Fh, 77h, 6Eh, 00h
    152 
    153 g_szFddSizeOr:
    154  db  034h, 02fh, 021h, 026h, 020h, 075h, 0f8h, 02dh, 022h, 026h, 020h, 04ah, 08ah
    155 ; source:  25h, 73h, 35h, ACh, 22h, 20h, 6Fh, 72h, 20h, 33h, ABh, 22h, 20h, 44h, 44h, 00h
    156 
    157 g_szFddSize:
    158  db  034h, 034h, 026h, 027h, 020h, 037h, 020h, 071h, 06fh, 088h
    159 ; source:  25h, 73h, 25h, 73h, 22h, 2Ch, 20h, 25h, 75h, 20h, 6Bh, 69h, 42h, 00h
    160 
    161 
    162 g_szFddThreeHalf:
    163  db  02dh, 002h
    164 ; source:  33h, ABh, 00h
    165 
    166 g_szFddFiveQuarter:
    167  db  02fh, 001h
    168 ; source:  35h, ACh, 00h
     152g_szFddUnknown: ; db    "%sUnknown",NULL
     153                ; db     25h,  73h,  55h,  6eh,  6bh,  6eh,  6fh,  77h,  6eh,  00h    ; uncompressed
     154                  db     34h,  5bh,  74h,  71h,  74h,  75h,  7dh, 0b4h                ; compressed
     155
     156g_szFddSizeOr:  ; db    "%s5",ONE_QUARTER,QUOTATION_MARK," or 3",ONE_HALF,QUOTATION_MARK," DD",NULL
     157                ; db     25h,  73h,  35h, 0ach,  22h,  20h,  6fh,  72h,  20h,  33h, 0abh,  22h,  20h,  44h,  44h,  00h    ; uncompressed
     158                  db     34h,  2fh,  21h,  26h,  20h,  75h, 0f8h,  2dh,  22h,  26h,  20h,  4ah,  8ah                      ; compressed
     159
     160g_szFddSize:    ; db    "%s%s",QUOTATION_MARK,", %u kiB",NULL   ; 3½", 1440 kiB
     161                ; db     25h,  73h,  25h,  73h,  22h,  2ch,  20h,  25h,  75h,  20h,  6bh,  69h,  42h,  00h    ; uncompressed
     162                  db     34h,  34h,  26h,  27h,  20h,  37h,  20h,  71h,  6fh,  88h                            ; compressed
     163
     164
     165g_szFddThreeHalf:       ; db  "3",ONE_HALF,NULL
     166                        ; db   33h, 0abh,  00h    ; uncompressed
     167                          db   2dh,  02h          ; compressed
     168
     169g_szFddFiveQuarter:     ; db  "5",ONE_QUARTER,NULL     
     170                        ; db   35h, 0ach,  00h    ; uncompressed
     171                          db   2fh,  01h          ; compressed
    169172
    170173g_szFddThreeFive_Displacement equ (g_szFddFiveQuarter - g_szFddThreeHalf)
    171174
    172175g_szBusTypeValues:     
    173 g_szBusTypeValues_8Dual:
    174  db  04ah, 031h, 000h
    175 ; source:  44h, 38h, 20h, 00h
    176 
    177 g_szBusTypeValues_8Reversed:
    178  db  05eh, 031h, 000h
    179 ; source:  58h, 38h, 20h, 00h
    180 
    181 g_szBusTypeValues_8Single:
    182  db  059h, 031h, 000h
    183 ; source:  53h, 38h, 20h, 00h
    184 
    185 g_szBusTypeValues_16:
    186  db  020h, 02bh, 010h
    187 ; source:  20h, 31h, 36h, 00h
    188 
    189 g_szBusTypeValues_32:
    190  db  020h, 02dh, 00ch
    191 ; source:  20h, 33h, 32h, 00h
    192 
    193 g_szBusTypeValues_Serial:
    194  db  059h, 04bh, 098h
    195 ; source:  53h, 45h, 52h, 00h
     176g_szBusTypeValues_8Dual:        ; db        "D8 ",NULL
     177                                ; db         44h,  38h,  20h,  00h    ; uncompressed
     178                                  db         4ah,  31h,  00h          ; compressed
     179
     180g_szBusTypeValues_8Reversed:    ; db        "X8 ",NULL
     181                                ; db         58h,  38h,  20h,  00h    ; uncompressed
     182                                  db         5eh,  31h,  00h          ; compressed
     183
     184g_szBusTypeValues_8Single:      ; db        "S8 ",NULL
     185                                ; db         53h,  38h,  20h,  00h    ; uncompressed
     186                                  db         59h,  31h,  00h          ; compressed
     187
     188g_szBusTypeValues_16:           ; db        " 16",NULL
     189                                ; db         20h,  31h,  36h,  00h    ; uncompressed
     190                                  db         20h,  2bh,  10h          ; compressed
     191
     192g_szBusTypeValues_32:           ; db        " 32",NULL
     193                                ; db         20h,  33h,  32h,  00h    ; uncompressed
     194                                  db         20h,  2dh,  0ch          ; compressed
     195
     196g_szBusTypeValues_Serial:       ; db        "SER",NULL
     197                                ; db         53h,  45h,  52h,  00h    ; uncompressed
     198                                  db         59h,  4bh,  98h          ; compressed
    196199
    197200g_szBusTypeValues_Displacement equ (g_szBusTypeValues_8Reversed - g_szBusTypeValues)
     
    218221%endif             
    219222
    220 g_szSelectionTimeout:
    221  db  032h, 033h, 03dh, 059h, 06bh, 072h, 06bh, 069h, 07ah, 06fh, 075h, 0f4h, 06fh, 0f4h, 03ch, 020h, 0b9h
    222 ; source:  C8h, B5h, 25h, 41h, 53h, 65h, 6Ch, 65h, 63h, 74h, 69h, 6Fh, 6Eh, 20h, 69h, 6Eh, 20h, 25h, 32h, 2Dh, 75h, 20h, 73h, 00h
    223 
    224 
    225 g_szDashForZero:
    226  db  028h, 000h
    227 ; source:  2Dh, 20h, 00h
    228 
    229 StringsCompressed_NormalBase equ 58
    230 
    231 ;; translated usage stats
    232 ;; 179:8
    233 ;; 50:2
    234 ;; 32:33
    235 ;; 51:3
    236 ;; 33:1
    237 ;; 52:1
    238 ;; 34:3
    239 ;; 53:2
    240 ;; 44:1
    241 ;; 54:1
    242 ;; 45:3
    243 ;; 46:4
    244 ;; 56:5
    245 ;; 47:1
    246 ;; 49:1
    247 ;; 200:1
    248 ;; 171:2
    249 ;; 181:1
    250 ;; 172:2
    251 ;; 175:1
    252 ;; total special: 20
     223g_szSelectionTimeout:   ; db        DOUBLE_BOTTOM_LEFT_CORNER,DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL,"%ASelection in %2-u s",NULL
     224                        ; 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
     225                          db         32h,  33h,  3dh,  59h,  6bh,  72h,  6bh,  69h,  7ah,  6fh,  75h, 0f4h,  6fh, 0f4h,  3ch,  20h, 0b9h                                              ; compressed
     226
     227
     228g_szDashForZero:        ; db        "- ",NULL
     229                        ; db         2dh,  20h,  00h    ; uncompressed
     230                          db         28h,  00h          ; compressed
     231
     232;;; end of strings.asm
     233
     234StringsCompressed_NormalBase     equ   58
     235
     236StringsCompressed_FormatsBegin   equ   20
     237
    253238StringsCompressed_TranslatesAndFormats:
    254239        db     32  ; 0
     
    272257        db     200  ; 18
    273258        db     181  ; 19
     259        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_s)    ; 20
     260        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_c)    ; 21
     261        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_2_I)    ; 22
     262        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_u)    ; 23
     263        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_5_u)    ; 24
     264        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_x)    ; 25
     265        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_5_x)    ; 26
     266        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_nl)    ; 27
     267        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_2_u)    ; 28
     268        db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_A)    ; 29
     269
     270%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_s || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_s > 255
     271%error "DisplayFormatCompressed_Format_s is out of range of DisplayFormatCompressed_BaseFormatOffset"
     272%endif
     273%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_c || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_c > 255
     274%error "DisplayFormatCompressed_Format_c is out of range of DisplayFormatCompressed_BaseFormatOffset"
     275%endif
     276%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_2_I || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_2_I > 255
     277%error "DisplayFormatCompressed_Format_2_I is out of range of DisplayFormatCompressed_BaseFormatOffset"
     278%endif
     279%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_u || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_u > 255
     280%error "DisplayFormatCompressed_Format_u is out of range of DisplayFormatCompressed_BaseFormatOffset"
     281%endif
     282%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_5_u || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_5_u > 255
     283%error "DisplayFormatCompressed_Format_5_u is out of range of DisplayFormatCompressed_BaseFormatOffset"
     284%endif
     285%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_x || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_x > 255
     286%error "DisplayFormatCompressed_Format_x is out of range of DisplayFormatCompressed_BaseFormatOffset"
     287%endif
     288%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_5_x || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_5_x > 255
     289%error "DisplayFormatCompressed_Format_5_x is out of range of DisplayFormatCompressed_BaseFormatOffset"
     290%endif
     291%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_nl || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_nl > 255
     292%error "DisplayFormatCompressed_Format_nl is out of range of DisplayFormatCompressed_BaseFormatOffset"
     293%endif
     294%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_2_u || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_2_u > 255
     295%error "DisplayFormatCompressed_Format_2_u is out of range of DisplayFormatCompressed_BaseFormatOffset"
     296%endif
     297%if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_A || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_A > 255
     298%error "DisplayFormatCompressed_Format_A is out of range of DisplayFormatCompressed_BaseFormatOffset"
     299%endif
     300
     301;; translated usage stats
     302;; total translated:
    274303
    275304;; format usage stats
    276305;; A:4
    277306;; c:6
    278 ;; s:13
     307;; s:14
    279308;; 2-u:1
    280309;; u:5
     
    285314;; nl:6
    286315;; total format: 10
    287         db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_s)  ; 20
    288         db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_c)  ; 21
    289         db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_2_I)  ; 22
    290         db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_u)  ; 23
    291         db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_5_u)  ; 24
    292         db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_x)  ; 25
    293         db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_5_x)  ; 26
    294         db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_nl)  ; 27
    295         db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_2_u)  ; 28
    296         db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_A)  ; 29
    297 
    298 StringsCompressed_FormatsBegin   equ   20
    299 
    300316
    301317;; alphabet usage stats
    302 ;; 58,::2
     318;; 58,::3
    303319;; 59,;:
    304320;; 60,<:
     
    322338;; 78,N:
    323339;; 79,O:1
    324 ;; 80,P:1
     340;; 80,P:2
    325341;; 81,Q:1
    326342;; 82,R:4
    327 ;; 83,S:6
     343;; 83,S:7
    328344;; 84,T:
    329345;; 85,U:1
     
    339355;; 95,_:
    340356;; 96,`:
    341 ;; 97,a:6
     357;; 97,a:7
    342358;; 98,b:
    343359;; 99,c:4
    344360;; 100,d:4
    345 ;; 101,e:9
     361;; 101,e:10
    346362;; 102,f:2
    347363;; 103,g:2
    348364;; 104,h:
    349 ;; 105,i:11
     365;; 105,i:12
    350366;; 106,j:
    351367;; 107,k:4
    352 ;; 108,l:4
     368;; 108,l:5
    353369;; 109,m:1
    354370;; 110,n:9
    355 ;; 111,o:17
     371;; 111,o:18
    356372;; 112,p:3
    357373;; 113,q:
    358 ;; 114,r:11
     374;; 114,r:13
    359375;; 115,s:6
    360 ;; 116,t:10
     376;; 116,t:11
    361377;; 117,u:2
    362378;; 118,v:2
     
    364380;; 120,x:
    365381;; 121,y:2
    366 ;; alphabet used_count: 39
     382;; alphabet used count: 39
Note: See TracChangeset for help on using the changeset viewer.