Changeset 223 in xtideuniversalbios for trunk/Configurator/Inc/emulate.inc


Ignore:
Timestamp:
Jan 25, 2012, 8:20:06 PM (12 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • Fixed what appears to be a mistake in EBIOS.inc
  • Added a 'release' option to the makefile of the Serial Server (invokes UPX)
  • Some very minor optimizations
  • Removed the eSEG macro and did some other cleanups (fixed typos etc)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Configurator/Inc/emulate.inc

    r162 r223  
    305305
    306306;--------------------------------------------------------------------
    307 ; Segment override prefix instruction.
    308 ;
    309 ; eSEG
    310 ;   Parameters:
    311 ;       %1:     Name of the segment (ES, CS, SS, DS, FS or GS)
    312 ;   Returns:
    313 ;       Nothing
    314 ;   Corrupts registers:
    315 ;       Nothing
    316 ;--------------------------------------------------------------------
    317 %macro eSEG 1
    318     %ifidni %1, es
    319         db  00100110b
    320     %elifidni %1, cs
    321         db  00101110b
    322     %elifidni %1, ss
    323         db  00110110b
    324     %elifidni %1, ds
    325         db  00111110b
    326     %elifidni %1, fs
    327         db  01100100b
    328     %elifidni %1, gs
    329         db  01100101b
    330     %else
    331         %error "Invalid segment override passed to eSEG!"
    332     %endif
    333 %endmacro
    334 
    335 
    336 ;--------------------------------------------------------------------
    337307; Repeats string instruction with segment override.
    338308; This macro prevents 8088/8086 restart bug.
     
    351321%macro eSEG_STR 3
    352322%ifndef USE_186 ; 8088/8086 has string instruction restart bug when more than one prefix
    353      %%Loop:
    354         %1                      ; REP is the prefix that can be lost
    355         eSEG    %2              ; SEG is the prefix that won't be lost
    356         %3                      ; String instruction
    357         jcxz    %%End           ; Jump to end if no repeats left (preserves FLAGS)
    358         jmp     SHORT %%Loop    ; Loop while repeats left
    359      %%End:
     323    %%Loop:
     324        %1                      ; REP is the prefix that can be lost
     325        %2                      ; SEG is the prefix that won't be lost
     326        %3                      ; String instruction
     327        jcxz    %%End           ; Jump to end if no repeats left (preserves FLAGS)
     328        jmp     SHORT %%Loop    ; Loop while repeats left
     329    %%End:
    360330%else   ; No bug on V20/V30 and later, don't know about 188/186
    361     eSEG    %2
    362     %1      %3
     331    %2
     332    %1 %3
    363333%endif
    364334%endmacro
Note: See TracChangeset for help on using the changeset viewer.