Re: [Freedos-devel] Jemm386 issues
Hi! 21-Дек-2006 19:03 [EMAIL PROTECTED] (Daniel Verkamp) wrote to freedos-devel@lists.sourceforge.net: DV> ja/jae and jb/jbe are "jump if above/below", which work the same way as DV> jg/jge and jl/jle, except treating the operands as unsigned instead of DV> signed. There are also other differences. For example, because INC/DEC don't change carry flag, they can't be used for unsigned-condition-jumps. Ie, they should be replaced by add/sub: sub ax,1; DEC can't be used here jb @@overflow - 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
Re: [Freedos-devel] Jemm386 issues
> > 320 bytes? Hard task, unless your code is ineffective :) or there is > present some redundant functions. > > May you in short explain layout of your code? This should ease my > findings. the resident protected-mode code is in segment V86, the resident real-mode code is in segment RSEG (up to label RSEG_END). Other segments are irrelevant for optimisation. if you can reduce the resident RSEG part (currently size is 192 bytes) by 16 bytes without a functional loss, you are 1337! - 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
Re: [Freedos-devel] Jemm386 issues
Blair Campbell wrote: > Just to butt in :-) I understand jnc/jc/jz/jnz myself but I don't even > know what jae is. I would also prefer jnc/jz over jae or je. > > ja/jae and jb/jbe are "jump if above/below", which work the same way as jg/jge and jl/jle, except treating the operands as unsigned instead of signed. -- Daniel - 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
Re: [Freedos-devel] Jemm386 issues
Hi! 21-Дек-2006 14:23 [EMAIL PROTECTED] (Blair Campbell) wrote to freedos-devel@lists.sourceforge.net: BC> Just to butt in :-) I understand jnc/jc/jz/jnz myself but I don't even BC> know what jae is. je - Equal (==) jae - Above or Equal(unsigned >=) ja - Above (unsigned >) jb - Below (unsigned <) jbe - Below or Equal(unsigned <=) jge - Greater or Eq (signed >=) jg - Greater (signed >) jle - Less or Eq(signed <=) jl - Less (signed <) BC> I would also prefer jnc/jz over jae or je. These mnemonics are with same opcodes (ie., relation conditions are based on checking Carry/Zero/Sign/Overflow flags), but they reflect different semantic. Consequently, it valid to mix mnemonics with same opcodes, but this is trickier, adn all tricks should be avoided as much, as possible, or explicitly and extensively commented - even in assemblers (some) rules from HLLs are valid/useful. - 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
Re: [Freedos-devel] Jemm386 issues
Just to butt in :-) I understand jnc/jc/jz/jnz myself but I don't even know what jae is. I would also prefer jnc/jz over jae or je. -- Fall is my favorite season in Los Angeles, watching the birds change color and fall from the trees. David Letterman (1947 - ) See ya - 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
Re: [Freedos-devel] Jemm386 issues
Hi! 21-Дек-2006 20:20 [EMAIL PROTECTED] (Japheth) wrote to freedos-devel@lists.sourceforge.net: 1. On your site, program versions nowhere mentioned, only in "news" sometime. >> J> no, see http://www.japheth.de/Jemm386.html >> http://www.japheth.de/HX.html >> Find "2.1" -> not found J> Yes, but you claimed program versions are *nowhere* mentioned, so just 1 J> example will prove you wrong. Just add "_most_ programs". Here important not words (formal logic), but sense. >> 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. J> Aggreed, Then why not import proven build subsystem, which works at least for kernel and FreeEMM386? It should minimize your efforts to adopt different compilers (discussed subsystem is enough flexible for this) and it should be convenient for users (common for (some) programs subsystem; separation betwen settings and compile logic). J> it is *almost* "minimal" efforts. >> In yet only commented, but not removed. J> Yes, but I was in fear to be sued by the copyright holders (Tom Ehlert, ...) J> because of deleting their precious inline assembly code ... license.txt " 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: [...] c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. " >> 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). J> I learnt assembly with the Z80, where there was no "jae" or "je", so as for J> me J> using jnc/jz are the most natural versions. (This is question of defining macros, if your assembler wasn't support relational mnemonics). Fortunately, x86 assembler allows better reflect programmer's intentions in given case - so, why not use these possibilities? Especially, not all was know z80. >> @@ok: >> xor ah,ah ; everything OK and finished >> ;clc [...] >> inc ax ; this is shorter, than "inc al" >> shl al,2 J> Indeed, saves a byte (although not true for "inc ax", since we are in 32bit J> mode), In 32-bit mode you may use "inc eax". Because AL <= 4, this is safe. J> but I deliberately choose to use "mov ah,00", because it clearly J> indicates that it is the "ok" return code which is set. For this, I (always!) use comments. Like this: xor ah,ah ; OPTIMIZE: XOR AH,AH instead MOV AH,0/CLC inc eax ; OPTIMIZE: INC EAX instead INC AL >> sub eax,edx >> jae @@noadj2 >> xor eax,eax >> @@noadj2: J> yes, this indeed is better. Go on! If you can reduce the size of V86 segment J> to 3400h it will save a full 4 kB page (currently size is still about 3540h) 320 bytes? Hard task, unless your code is ineffective :) or there is present some redundant functions. May you in short explain layout of your code? This should ease my findings. >> J> optimising the C part is irrelevant IMO >> Why not? J> It's used for initialization only. But it present in source and it present in executable itself. - 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
Re: [Freedos-devel] Jemm386 issues
Hi! 21-Дек-2006 15:32 [EMAIL PROTECTED] (Alain M.) wrote to freedos-devel@lists.sourceforge.net: AM> Some time ago you were involved in a dicussion about a AM> system/applicatio/?? that could read a forum and send messages to an AM> Email, do you have something about it? AFAIK, for some forums exist additions, which transform forums to mail lists. But web-master should install these additions to its forum. - 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
Re: [Freedos-devel] Jemm386 issues
>>> 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 Yes, but you claimed program versions are *nowhere* mentioned, so just 1 example will prove you wrong. > 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. Aggreed, it is *almost* "minimal" efforts. > In yet only commented, but not removed. Yes, but I was in fear to be sued by the copyright holders (Tom Ehlert, ...) because of deleting their precious inline assembly 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). I learnt assembly with the Z80, where there was no "jae" or "je", so as for me using jnc/jz are the most natural versions. > > @@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 > Indeed, saves a byte (although not true for "inc ax", since we are in 32bit mode), but I deliberately choose to use "mov ah,00", because it clearly indicates that it is the "ok" return code which is set. > sub eax,edx > jae @@noadj2 > xor eax,eax > @@noadj2: > yes, this indeed is better. Go on! If you can reduce the size of V86 segment to 3400h it will save a full 4 kB page (currently size is still about 3540h) > J> optimising the C part is irrelevant IMO > Why not? It's used for initialization only. - 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
Re: [Freedos-devel] Jemm386 issues
> Ok, I may discuss at public, if you wish. I do not wish, but all your email addresses are "invalid" and you refused to use the nice EDR-DOS forum. > 1. On your site, program versions nowhere mentioned, only in "news" > sometime. no, see http://gra3/Jemm386.html > 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). I used a different build system, OW/TC/MSVC/DMC are all supported (with "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] I threw away all inline assembly code from the C part. > 4. I compare latest version with previous to see the differences, and found: > > +CMPAX,OFFSET RESGRP:BP06_FATAL > + JZ V86_EXC06_FATAL > [...] > + cmp edx, eax; source < destination? > +jnc @@calc_src_done; no, use std copy > > 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. All right, but I doubt this is the main reason why not that many people are able to understand the code. > 5. Is it valid code, to mix 16- and 32-bit registers? > > + MOV DS,EAX ; segment register caches > + MOV ES,EAX > + MOV FS,EAX > + MOV GS,EAX It is valid and - since code has been switched to 32-bit - avoids the 66h prefix. > 6. Is there reason to copy return address? > > RPRINTSTR PROC > push bp > mov bp,sp > XCHG BX,[bp+2] > [...] > mov ah,0Eh > int 10h > [...] > XCHG BX,[bp+2] > pop bp > RET this is debug code to be used this way: call rprintstr db "something to print",0 mov eax,ebx ... > 7. There is code, which may be optimized. For example, > *wordout+*byteout+*nibout. Or: > > @@ok: > mov AH,0 ; everything OK and finished > +clc > [...] > inc al ;4 extra bytes for size + checksum? > shl al,2;4 bytes (makes Kyrandia 3 work [better]!?) > [...] > + shl edi,4 > add edi,esi ; edi -> EMS region buffer address > [...] > shl ebx,4 ; convert seg to memory offset > + add ebx,ecx > [...] > + cmp eax,edx ; ensure no overflow from improper > current value > ja @@noadj2 > + mov eax,edx > @@noadj2: > + sub eax,edx ; max - used == max available > [...] ??? I dont get it > +void fmemset(char far *s1, char c, int count) > { > +char far * s = s1; > for ( ; count; count--) > *s++ = c; > } > [...] > void fmemcpy(char far *s1,char far *s2,int len) > { > +char far * dst = s1; > +char far * src = s2; > + for ( ; len; len--) > + *dst++ = *src++; > } optimising the C part is irrelevant IMO > 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 > + 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: > + callgetword ;get word into DX > [...] >>> +cmp bl,1 >>> +jz ii_3 >>> +cmp bl,2 >>> +jz ii_4 > in al,dx > callhexbyte > +jmp ii_5 > +ii_3: > + in ax,dx >>> + callhexword > +jmp ii_5 > +ii_4: > + in eax,dx > +push ax > +shr eax,16 > + callhexword > +pop ax > + callhexword > +ii_5: > [...] > + cmp byte [fileext],0 >>> + jnz ll4 > [...] > +oo: > + mov bl,0 > +mov ah,al > + and ah,TOUPPER > + cmp ah,'W' ??? Please try to express yourself more clearly > PS: I jemm may completely replace ms-emm386 and, for example, compatible > with W9x? it won't run with w9x, it does not completely replace ms-emm386. - 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/fre
Re: [Freedos-devel] Jemm386 issues
> no, see http://gra3/Jemm386.html no, see http://www.japheth.de/Jemm386.html - 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
Re: [Freedos-devel] Jemm386 issues
> I do not wish, but all your email addresses are "invalid" and you refused to > use the nice EDR-DOS forum. Hi Arkady, you have my whole simpaty, I also hate forums, it wastes too much time to follow. Some time ago you were involved in a dicussion about a system/applicatio/?? that could read a forum and send messages to an Email, do you have something about it? Alain - 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
Re: [Freedos-devel] Jemm386 issues
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: >> + callgetword ;get word into DX >> [...] >>> +cmp bl,1 >>> +jz ii_3 >>> +cmp bl,2 >>> +jz ii_4 >> in al,dx >> callhexbyte >> +jmp ii_5 >> +ii_3: >> + in ax,dx >>> + callhexword >> +jmp ii_5 >> +ii_4: >> + in eax,dx >> +push ax >> +shr eax,16 >> + callhexword >> +pop ax >> + callhexword >> +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: callgetword ;get word into DX callchkeol ;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 callhexbyte jmp ii_put ii_inw: in ax,dx jmp ii_hexw ii_indw: i
Re: [Freedos-devel] Jemm386 issues
Hi! 21-Дек-2006 13:14 [EMAIL PROTECTED] (Japheth) wrote to freedos-devel@lists.sourceforge.net: J> This thread has been opened for Jemm386 issues and discussion. Ok, I may discuss at public, if you wish. 1. On your site, program versions nowhere mentioned, only in "news" sometime. 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). 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] 4. I compare latest version with previous to see the differences, and found: +CMPAX,OFFSET RESGRP:BP06_FATAL + JZ V86_EXC06_FATAL [...] + cmp edx, eax; source < destination? +jnc @@calc_src_done; no, use std copy 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. 5. Is it valid code, to mix 16- and 32-bit registers? + MOV DS,EAX ; segment register caches + MOV ES,EAX + MOV FS,EAX + MOV GS,EAX 6. Is there reason to copy return address? RPRINTSTR PROC push bp mov bp,sp XCHG BX,[bp+2] [...] mov ah,0Eh int 10h [...] XCHG BX,[bp+2] pop bp RET 7. There is code, which may be optimized. For example, *wordout+*byteout+*nibout. Or: @@ok: mov AH,0 ; everything OK and finished +clc [...] inc al ;4 extra bytes for size + checksum? shl al,2;4 bytes (makes Kyrandia 3 work [better]!?) [...] + shl edi,4 add edi,esi ; edi -> EMS region buffer address [...] shl ebx,4 ; convert seg to memory offset + add ebx,ecx [...] + cmp eax,edx ; ensure no overflow from improper current value ja @@noadj2 + mov eax,edx @@noadj2: + sub eax,edx ; max - used == max available [...] +void fmemset(char far *s1, char c, int count) { +char far * s = s1; for ( ; count; count--) *s++ = c; } [...] void fmemcpy(char far *s1,char far *s2,int len) { +char far * dst = s1; +char far * src = s2; + for ( ; len; len--) + *dst++ = *src++; } 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 + 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: + callgetword ;get word into DX [...] > >+cmp bl,1 > >+jz ii_3 > >+cmp bl,2 > >+jz ii_4 in al,dx callhexbyte +jmp ii_5 +ii_3: + in ax,dx > >+ callhexword +jmp ii_5 +ii_4: + in eax,dx +push ax +shr eax,16 + callhexword +pop ax + callhexword +ii_5: [...] + cmp byte [fileext],0 > >+ jnz ll4 [...] +oo: + mov bl,0 +mov ah,al + and ah,TOUPPER + cmp ah,'W' PS: I jemm may completely replace ms-emm386 and, for example, compatible with W9x? - 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
[Freedos-devel] Jemm386 issues
This thread has been opened for Jemm386 issues and discussion. - 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