Hi! 21-Дек-2006 18:22 [EMAIL PROTECTED] (Japheth) wrote to freedos-devel@lists.sourceforge.net:
>> Ok, I may discuss at public, if you wish. J> I do not wish, but all your email addresses are "invalid" and you refused to J> use the nice EDR-DOS forum. Do you try [EMAIL PROTECTED] >> 1. On your site, program versions nowhere mentioned, only in "news" >> sometime. J> no, see http://gra3/Jemm386.html J> no, see http://www.japheth.de/Jemm386.html http://www.japheth.de/HX.html Find "2.1" -> not found http://www.japheth.de/debxxf.html Find "2.9.4" -> not found http://www.japheth.de/dwnload4.html Find "2.1" or "2.9.4" -> not found >> 2. I see "Jemm386 ... based on the source of FreeDOS Emm386", but I not see >> in JEMM normal build subsystem (which was at last included by Michael into >> latest releases), which allows to compile sources by different compilers >> with minimal efforts (to customize batch and makefiles). J> I used a different build system, OW/TC/MSVC/DMC are all supported (with J> "minimal" efforts :)). Where I should specify path to my BC 3.1 or OW compiler (compare: config.b)? Where described, which options/pathes are required to set, which options may be changed, and how to do this (compare: config.b)? Yes, skilled programmer may trace your makefiles (especially, there are two makefiles) and develop/modify to own one, which will fit into his environment, but this is _not_ "minimal" efforts. >> 3. jemm doesn't includes some patches for emm386, which makes it more >> compatible with different compilers. For example: >> - asm mov ah,function >> + asm mov ah,byte ptr [function] J> I threw away all inline assembly code from the C part. In yet only commented, but not removed. >> 4. I compare latest version with previous to see the differences, and found: >> This somewhat question of taste, but "je" and "jae" after "cmp" is much >> better reflects _sense_ (logic) of code and, thus, should make it more >> readable. J> All right, but I doubt this is the main reason why not that many people are J> able to understand the code. Of course. But even skilled programmers (at least, me) slow down at such points and try to understand, whan happen. Especially, they/I should spend time to mentally translate, that "jnc" here mean "jae" (this translation is not most trivial task). >> 6. Is there reason to copy return address? >> XCHG BX,[bp+2] J> this is debug code to be used this way: J> call rprintstr J> db "something to print",0 Oops, sorry, I was inattentive here and not notice, that BX is used. >> 7. There is code, which may be optimized. For example, >> *wordout+*byteout+*nibout. Or: >> @@ok: >> mov AH,0 ; everything OK and finished >> + clc @@ok: xor ah,ah ; everything OK and finished ;clc >> [...] >> inc al ;4 extra bytes for size + checksum? >> shl al,2 ;4 bytes (makes Kyrandia 3 work [better]!?) inc ax ; this is shorter, than "inc al" shl al,2 >> [...] >> + cmp eax,edx ; ensure no overflow from improper >> current value >> ja @@noadj2 >> + mov eax,edx >> @@noadj2: >> + sub eax,edx ; max - used == max available sub eax,edx jae @@noadj2 xor eax,eax @@noadj2: J> ??? I dont get it See above. >> +void fmemset(char far *s1, char c, int count) >> void fmemcpy(char far *s1,char far *s2,int len) J> optimising the C part is irrelevant IMO Why not? >> 8. Same (about conditional jumps after cmp and about optimization) with >> DEBUG, which you change. I compare 99i with 99g and found: >> +ii: >> + mov bl,0 >>> + mov ah,al >>> + and ah,TOUPPER mov ah,TOUPPER and ah,al >> + cmp ah,'W' >>> + jne ii_1 >>> + inc bx >>> + call skipwhite >>> + jmp ii_2 >> +ii_1: >> + cmp [machine],byte 3 >> + jb ii_2 >> + cmp ah,'D' >> + jne ii_2 >> + inc bx >> + inc bx >> + call skipwhite >> +ii_2: >> + call getword ;get word into DX >> [...] >>> + cmp bl,1 >>> + jz ii_3 >>> + cmp bl,2 >>> + jz ii_4 >> in al,dx >> call hexbyte >> + jmp ii_5 >> +ii_3: >> + in ax,dx >>> + call hexword >> + jmp ii_5 >> +ii_4: >> + in eax,dx >> + push ax >> + shr eax,16 >> + call hexword >> + pop ax >> + call hexword >> +ii_5: ii: mov bl,0 mov ah,TOUPPER and ah,al cmp ah,'W' je ii_w cmp [machine],byte 3 jb ii_getw cmp ah,'D' jne ii_getw inc bx ii_w: inc bx call skipwhite ii_getw: call getword ;get word into DX call chkeol ;expect end of line here ; bx=0/1/2 for byte/word/dword dec bx je ii_inw ;=1 jg ii_indw ;=2 in al,dx call hexbyte jmp ii_put ii_inw: in ax,dx jmp ii_hexw ii_indw: in eax,dx push ax shr eax,16 call hexword pop ax ii_hexw: call hexword ii_put: call putsline iiret: ret >> [...] >> + cmp byte [fileext],0 >>> + jnz ll4 jne >> [...] >> +oo: >> + mov bl,0 >> + mov ah,al >> + and ah,TOUPPER >> + cmp ah,'W' Same, as for "ii". J> ??? Please try to express yourself more clearly See above. If you wish, I prepare diff-file. >> PS: I jemm may completely replace ms-emm386 and, for example, compatible >> with W9x? J> it won't run with w9x, it does not completely replace ms-emm386. Pity. :( ------------------------------------------------------------------------- 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