Changeset 241 in xtideuniversalbios for trunk/Assembly_Library/Src/Display


Ignore:
Timestamp:
Feb 9, 2012, 11:08:59 AM (13 years ago)
Author:
gregli@…
google:author:
gregli@hotmail.com
Message:

Space optimizations in the Boot Menu and BootInfo routines, taking advantage of nested %s. Optimization in the init of RamVars to avoid writing the signature twice. Preparing for addition of serial floppy support, starting to break the assumption that our drives are always 80h or higher.

Location:
trunk/Assembly_Library/Src/Display
Files:
3 edited

Legend:

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

    r223 r241  
    127127.rgcFormatCharToLookupIndex:
    128128%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
    129     db      "aIAduxsSct-+%"
     129    db      "aIAduxsSctz-+%"
    130130%else
    131     db      "IAuxsc-"       ; Required by XTIDE Universal BIOS
     131    db      "IAuxscz-"      ; Required by XTIDE Universal BIOS
    132132%endif
    133133.rgcFormatCharToLookupIndexEnd:
     
    152152    dw      t_FormatRepeatCharacter
    153153%endif
     154    dw      z_FormatStringFromSegmentZero
    154155    dw      PrepareToPrependParameterWithSpaces
    155156%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
     
    344345ALIGN JUMP_ALIGN
    345346s_FormatStringFromSegmentCS:
     347    push    si
     348    push    cx
     349    mov     si, [bp]
     350       
     351    cmp     si, byte 07fh       ;  well within the boundaries of ROMVARS_size
     352    jb      .notFormatted
     353
     354    dec     bp
     355    dec     bp
     356    call    DisplayFormat_ParseCharacters
     357    inc     bp                  ; will be decremented after the call is done
     358    inc     bp
     359    jmp     .done
     360       
     361.notFormatted: 
     362    call    DisplayPrint_NullTerminatedStringFromCSSI
     363       
     364.done:
     365    pop     cx
     366    pop     si
     367    ret     
     368
     369ALIGN JUMP_ALIGN
     370z_FormatStringFromSegmentZero: 
    346371    xchg    si, [bp]
    347     call    DisplayPrint_NullTerminatedStringFromCSSI
     372    xor     bx, bx
     373    call    DisplayPrint_NullTerminatedStringFromBXSI
    348374    mov     si, [bp]
    349     ret
     375    ret     
    350376
    351377%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
  • trunk/Assembly_Library/Src/Display/DisplayFormatCompressed.asm

    r223 r241  
    6767DisplayFormatCompressed_ret:            ; jump target for other routines who need a "ret"
    6868    ret
     69
     70DisplayFormatCompressed_Format_z:
     71    xor     bx, bx
     72    xchg    si, ax
     73    jmp     short DisplayPrint_NullTerminatedStringFromBXSI
    6974
    7075DisplayFormatCompressed_Format_x:
  • trunk/Assembly_Library/Src/Display/DisplayPrint.asm

    r223 r241  
    346346ALIGN JUMP_ALIGN
    347347DisplayPrint_CharacterFromAL:
    348 %ifdef MODULE_STRINGS_COMPRESSED
    349348    test    al,al
    350349    jz      DisplayPrint_Ret
    351 %endif
     350
    352351    mov     ah, [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.bAttribute]
    353352    jmp     [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fnCharOut]
Note: See TracChangeset for help on using the changeset viewer.