> 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 Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel