Changeset 186 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Boot


Ignore:
Timestamp:
Nov 15, 2011, 10:35:17 AM (13 years ago)
Author:
gregli@…
google:author:
gregli@hotmail.com
Message:

Initial string compression checkin. All changes are under MODULE_STRINGS_COMPRESSED, and this can still be turned off. With this checkin, the serial and ebios code can both be turned on at the same time and still we remain below the 8K boundary (barely). I still need to chekin StringsCompress.pl after some more code cleanup. The output, in StringsCompressed.asm is checked in here, and should continue be to checkin when Strings.asm is changed, for those who do not have/want to run the Perl script to recreate it.

Location:
trunk/XTIDE_Universal_BIOS/Src/Boot
Files:
2 edited

Legend:

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

    r182 r186  
    6666;       CF:     Set since menu event was handled successfully
    6767;   Corrupts registers:
    68 ;       AX
     68;       AX, DI
    6969;--------------------------------------------------------------------
    7070ALIGN JUMP_ALIGN
    7171BootMenuPrint_NullTerminatedStringFromCSSIandSetCF:
    72     push    di
    73     CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
    74     pop     di
    75     stc
    76     ret
    77 
     72;
     73; We send all CSSI strings through the Format routine for the case of
     74; compressed strings, but this doesn't hurt in the non-compressed case either
     75; (perhaps a little slower, but shouldn't be noticeable to the user)
     76; and results in smaller code size.
     77;
     78    push    bp
     79    mov     bp,sp
     80    jmp     BootMenuPrint_FormatCSSIfromParamsInSSBP
    7881
    7982;--------------------------------------------------------------------
     
    229232    cmp     bl, FLOPPY_TYPE_525_HD
    230233    ja      .ThreeHalf
     234%if g_szFddThreeFive_Displacement = 2       
     235    inc     ax                      ; compressed string case
     236    inc     ax
     237%else
    231238    add     ax, g_szFddThreeFive_Displacement
     239%endif
    232240.ThreeHalf:     
    233241    push    ax                      ; "5 1/4" or "3 1/2"
  • trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrintCfg.asm

    r185 r186  
    2121ALIGN JUMP_ALIGN
    2222BootMenuPrintCfg_ForOurDrive:
    23     pop     di
    2423    mov     si, g_szCfgHeader
    2524    call    BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
     25    pop     di
    2626    eMOVZX  ax, BYTE [di+DPT.bIdevarsOffset]
    2727    xchg    si, ax                      ; CS:SI now points to IDEVARS
     
    9191    mov     al,g_szBusTypeValues_Displacement
    9292    mul     BYTE [cs:si+IDEVARS.bDevice]
    93     shr     ax,1
     93       
     94    shr     ax,1            ; divide by 2 since IDEVARS.bDevice is multiplied by 2
     95       
    9496    add     ax,g_szBusTypeValues
    9597    push    ax 
Note: See TracChangeset for help on using the changeset viewer.