> 1. Bug: wrong handling for clc/stc in some places (they ignored, because
> popf follows, thus caller receives "always success"):
>
> ______________O\_/_________________________________\_/O______________
> @@loc2:
> [...]
> clc ; flag success
> @@locret:
> [...]
> popf
> ret
> [...]
> @@locfail:
> stc
> jmp @@locret
> ExpandCurrentPoolBlock ENDP
> _____________________________________________________________________
> O/~\ /~\O
> ______________O\_/_________________________________\_/O______________
> @@allocsuccess:
> [...]
> clc
> @@allocret:
> [...]
> popf
> ret
> @@allocfail:
> stc
> jmp @@allocret
> AllocateXMSForPool ENDP
> _____________________________________________________________________
> O/~\ /~\O
>
Interesting! Have you examined what implications this bug may have to an
application?
> 2. Probably, bug: CF not initialized, although comments say so ("probably"
> because I not found in RBIL spec for INT 67/87):
>
> ______________O\_/_________________________________\_/O______________
> ; hack: handle undocumented
> ; int67/87 function = simulated
> int15/87
> [...]
> CALL SIMULATE_INT1587
> [...]
> ; simulate INT15/87
> ;INT 15 - SYSTEM - COPY EXTENDED MEMORY (by RBIL)
> ;Return: CF set on error
> ; CF clear if successful
> SIMULATE_INT1587 proc near
> [...]
> @@ok:
> mov AH,0 ; everything OK and finished
> RET
> @@abort:
> mov AH,1 ; everything OK and finished
> RET
> @@invalid_command:
> mov ah,80h
> ret
I also once noted some "RETF 2" instead of "IRET". Doesnt this mean the Trace
flag is lost, which could cause troubles for not so smart-written debuggers?
> 3. Bug: missing popf after @@NO_386:
>
> ______________O\_/_________________________________\_/O______________
> _IS386 PROC NEAR
> PUSHF ; save Flags
> [...]
> POPF
> mov ax,1 ; OK
> RET
> @@NO_386:
> xor ax,ax
> ret
I'm afraid noone has a 80286 anymore to test the bugfix.
> Also, in next private email I send diff file with some code
> optimizations.
Very good! Thanks! Is among the optimizations one for "rep movsd" on P4s? I
remember I once saw a test with various memory move optimizations and the
winner was almost 3 times as fast as "rep movsd". May be the "XMS block move"
function can benefit?
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel