Re: [Freedos-kernel] FreeDOS 2035a detail discussion: FreeCOM, menu compatibility

2004-07-19 Thread Steffen Kaiser
On Sat, 17 Jul 2004, Arkady V.Belousov wrote:
Unfortunately, FreeCOM (included into 2035 package) wrongly handles empty
enviornment (easy to reproduce in MS-DOS, as I report this in group). Looks
like Steffen fixes (at least, one) bug, related to environment, but up to
now I don't know where to download fixed version. (May be, now you remind
for Steffen to make fixed version available for download?)
Arkady, FreeCOM _never_ had a problem with an _empty_ environment, but:
+ with a missing '.' in PATH, long fixed, and
+ with the MS-DOS-style of an empty environment, you've called broken 
yourself. That's also fixed in CVS.

No other problems are aware to me.
BTW: To add PATH or COMSPEC won't hurt any shell.
I may ADD adding any variable (including PATH=.) to (empty)
environment, but better, if Steffen at last makes fixed FreeCOM available
for download. Steffen?! When? May be, now you see that fixed programs should
be available to download?
I do not have no service contract about FreeCOM with anyone, so I will 
handle my resources at own will. I WILL NEVER DISCUSS THIS ISSUE AGAIN.
If this topic comes up again, simply search the archives for my side of 
the thread.

Bye,
--
Steffen Kaiser
---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721alloc_id=10040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] Big tour of 32bit stuff in kernel / optimization / bugs?

2004-07-19 Thread Arkady V.Belousov
Hi!

19--2004 01:23 [EMAIL PROTECTED] (Eric Auer) wrote to
[EMAIL PROTECTED]:

  Hi, I think it is now clear that Turbo C 2 cannot optimize for 386.
  HOWEVER, the NASM parts can still be optimized for 386.
 ... but then save a few byte by using a different longDIVMODMUL
 implementation doesn't make much sense.
EA This was not only about space, it is also about speed. 8086 code is
EA slow with mul, div, shift of 32 bit numbers, because - at least in
EA TC - it is implemented in bit-by-bit loops.

 This is true only for division, where divisor is more than 2^16-1.

EA Not sure how often 32 bit
EA numbers are used in speed-critical way, though.

 Not much. I not profile FD kernel, but I doubt that 32-bit division
with big divisors there have noticeable impact (especially on 8086 with
small disks).

EA We have LDIVMODU and LMULU, and they do:

 This is only for Watcom. This is Bart's trying to completely replace
standard Watcom's libraries (and currently no one module from Watcom is
required).

EA By the way, what is this? --
 MATH_EXTRACT=*H_LDIV *H_LLSH *H_LURSH *F_LXMUL
 MATH_INSERT=+H_LDIV +H_LLSH +H_LURSH +F_LXMUL
EA ...?

 This is instructions for librarian to extract and to add consequent
modules from/to consequent libraries.

EA It might sound stupid, but I cannot find any place in the sources
EA where LDIVMODU is actually used?

 Calls to __U4M and __U4D generated by compiler itself.

EA Neither for LMULU... probably it means that our Asm code replaces something
EA which would be normally present in the compiler as library function?

 Yes.

EA init_LBA_to_CHS ... - unsigned hsrem = (unsigned)(LBA_address % hs);
EA So we explicitly disallowed LBA_address / hs being  64k! You could
EA rewrite
EA that as:
chs-Cylinder = (LBA_address16 = hs) ? 0xu : (unsigned)(LBA_address/hs);

 Nice suggest. :)

unsigned hs = driveparam-chs.Sector * driveparam-chs.Head;
chs-Cylinder = hiword(LBA_address) = hs ? 0xu
  : (unsigned)(LBA_address / hs);
hs = (unsigned)(LBA_address % hs);
chs-Head = hs / driveparam-chs.Sector;
chs-Sector = hs % driveparam-chs.Sector + 1;

EA Similar code exists in LBA_to_CHS - this has different arguments and range
EA checks, but the core problem is the same: An unneeded 32:16=32 division
EA which can be replaced by a 32:16=16 one

 Unortunately, you can't replace 32/16=32 by 32/16=16. :( Because
nature of C/C++ (type promotions), (most) compilers always use generic
32/32=32.

EA (actually the code even complains
EA already for results  1023, one could arguably add support for special
EA high cylinder count extensions like:
EA - int 13.ee / 13.ef (add N to cylinder value of next int 13.2/13.3)

 Why? Mentioned error message shouldn't happen in real life, because
initdisk.c selects LBA mode for all partitions above 1023 cylinder.

EA While looking for other 32bit variables, I found a problem in the dmatch
EA structure: dm_dircluster should be of type CLUSTER, not of type if FAT32
EA then ULONG else 

 You forget about UWORD reserved, for which #ifdef anyway should be
used. Or union around CLUSTER should be added.

EA Same for dpb_xrootclst and dpb_xcluster!

 Useful, but not neccessary. I, probably, replace ULONG by CLUSTER at
some time, when (and if) will touch consequent headers.

EA Not sure if you can change this:
   ULONG l_diroff;   /* offset of the dir entry  */
EA ^ if you use the slot number instead, 16 bit will be enough.
EA As far as I know, FAT32 directories cannot have  64k entries each.

 ULONG used only in lfnapi.txt. Desynced description. Fixed - see patch
in next letter.

EA Another dmatch issue: dm_size is LONG but should be ULONG at least for
EA FAT32. Potential bug cause for processing of files  2 GB.

 Officially, DOS doesn't allows to have files more than 2G. In any case,
dm_size (currently) used only as acceptor for dir_size field, which _is_
unsigned long.

EA The f_node f_offset is ULONG, too. Nice. Would it be okay to change
EA f_count from UWORD to UBYTE?

 No. This makes misaligned structure, while space savings is low.

EA time? How about f_mode and f_flags, both 16 bit...?

 Hm. Looks like they may be joined (of course, with shifting for f_flags
by two bits higher). But I not yet study the Bart's fnode, so this is
optimization for later.

EA and both the f_cluster (current) and f_cluster_offset (relative cluster
EA number within file), both of type CLUSTER.

 f_cluster_offset is a _relative cluster number_ in cluster chain
(whereas f_cluster is a _physical number of current cluster_). See
computations at lines 1315-1357 in fatfs.c. Probably, this field may be
removed if fnode structure may be modified.

EA Finally there is f_offset, which
EA is ULONG, as told. Note that f_cluster_offset cannot be calculated from
EA f_cluster - at most you could try to relate it to f_offset, not sure...

 It already: see line 1315 in 

Re: [Freedos-kernel] Big tour of 32bit stuff in kernel / optimization / bugs?

2004-07-19 Thread Arkady V.Belousov
Hi!

19--2004 01:23 [EMAIL PROTECTED] (Eric Auer) wrote to
[EMAIL PROTECTED]:

[...]

EA The DosGetFree function (remember my bug report...) calls
EA flush_buffers if called from FatGetDrvData (int 21.1c?), maybe this is
EA where it crashed? Otherwise it also is int 21.36 ...
EA Plus, how do we know that this does not get a NULL pointer? --
EA   if (*nc != 0x)
EA *navc = (COUNT) dos_free(dpbp);

 In theory, *nc will never 0x (because it points to DX, and DL on
input is a drive number). Thus, you right, there is bug (which garbages
value of INT0 vector).

EA That fake for 64k cluster size looks evil, too.
EA while (ntotal  FAT_MAGIC16  cluster_size  0x8000)
EA { SHL cluster size and spc, SHR ntotal and nfree }
EA ... seems to be a cluster size determination loop which should probably

 No. As I understand, this loop is used to imitate FAT1x over FAT32. For
example - _known_ size of cluster is increased up to 32k to decrease ntotal
(total clusters on drive). Example: we have cluster 4k and total clusters
0x1 (long value). After increasing cluster size to 32k we get (16-bit!)
value 0x2000 for total clusters (and return 0x2000 instead 0x).

[...]
EA BOOL dos_setfsize(COUNT fd, LONG size)
EA should be ULONG, as it already is for dos_getfsize!
[...]

 I wrote all these small fixes in my todos. When I will change these
files, I will fix also this.

EA void far *DynAlloc(char *what, unsigned num, unsigned size)
EA ...
EA   if ((ULONG) total + Dynp-Allocated  0x)
EA ... should be possible to do that without having to use ULONG.

 :) Yes. if (total  ~Dynp-allocated).

EA STATIC int LBA_Get_Drive_Parameters(int drive, struct DriveParamS
EA *driveParam)
-- bug:
EA   if (lba_bios_parameters.heads  0x ||
EA   lba_bios_parameters.sectors  0x ||
EA   lba_bios_parameters.totalSectHigh != 0)
EA   {
EA printf(Drive is too large to handle, using only 1st 8 GB\n
EA ...
EA Explanation: totalSectHigh nonzero means either buggy BIOS (happens!) or
EA disk size above 2 TeraBytes! This does definitely NOT mean that you should:
EA ...
EA goto StandardBios;

 This is not bug, this is, probably, misfeature.

EA ... not at all! Just use LBA and clip the useable disk size to 0xUL
EA sectors.

 Nice idea, but Bart and Brian also should give their opinion.

EA Can somebody explain - in rwblock - what this does and why it uses UCOUNT?:
EA   UCOUNT sectors_to_xfer, sectors_wanted;

 What wonder you?

EA   sectors_wanted /= secsize;
EA ... can this be optimized to use a shift instead? 16bitvalue - 16bit.

 DPB doesn't contains value bits per sector_size value (similar to
dpb_shftcnt).

EA I saw the compile time option WRITEZEROS, could that be extended to
EA be supported by shrink_file (or maybe in rwblock itself?) ...?

 ?

EA Reading LBA_Transfer now, very interesting... play_dj (TODO: should call
EA the int 2f interface which allows to suppress the message!!),

 ?

EA int 1e stuff
EA and disk reset, track wrap avoidance for CHS, DMA wrap avoidance --
EA ** You should be allowed to disable DMA_max_transfer check for non-floppy!?

 Why? DMA aligned access is useful in any case.

EA ** You should be allowed to disable track wrap protection for non-floppy!?

 ?

EA Wow. That was huge.

 Yes, this letter _very_ huge. In future, please, split such long things
over more letters.




---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idG21alloc_id040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] FreeDOS 2035a detail discussion: FreeCOM, menu compatibility

2004-07-19 Thread Arkady V.Belousov
Hi!

19--2004 08:29 [EMAIL PROTECTED] (Steffen Kaiser) wrote
to [EMAIL PROTECTED]
[EMAIL PROTECTED]:

 Unfortunately, FreeCOM (included into 2035 package) wrongly handles empty
 enviornment (easy to reproduce in MS-DOS, as I report this in group). Looks
^^
 like Steffen fixes (at least, one) bug, related to environment, but up to
 now I don't know where to download fixed version. (May be, now you remind
 for Steffen to make fixed version available for download?)
SK Arkady, FreeCOM _never_ had a problem with an _empty_ environment, but:

 See underlined words above. With empty environment FreeCOM (whic is
currently available for use) _is_ buggy.

SK + with a missing '.' in PATH, long fixed, and
SK + with the MS-DOS-style of an empty environment, you've called broken
SK yourself.

 You mean Arkady called MS-DOS-style empty environment broken? Yes, I
call this. But this is MS-DOS and all its bugs become standard and called
feature. For example, INT25/26. There is bug, but you _should_ imitate and
workaround this.

SK That's also fixed in CVS.

 WHERE I MAY DOWNLOAD COMPILED FIXED VERSION OF FreeCOM? Very need. :(

 environment, but better, if Steffen at last makes fixed FreeCOM available
 for download. Steffen?! When? May be, now you see that fixed programs should
 be available to download?
SK I do not have no service contract about FreeCOM with anyone, so I will
SK handle my resources at own will. I WILL NEVER DISCUSS THIS ISSUE AGAIN.

 :( Of course, you have no contract, but hidding fixed version makes
repeatable question why FreeDOS is wrong (for example, as reported by
Alain: FreeCOM reports out of memory). [Note: not all may access CVS or
recompile version from CVS, thus not prepare to download compiled version
makes it equal to hiding.]

 BTW, is there ANYONE, who may recompile for me FreeCOM from CVS?! Then
I will use it myself and redistribute when other users will ask.




---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idG21alloc_id040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] FreeDOS 2035a detail discussion: FreeCOM, menu compatibility

2004-07-19 Thread Steffen Kaiser
On Mon, 19 Jul 2004, Arkady V.Belousov wrote:
Hello,
Unfortunately, FreeCOM (included into 2035 package) wrongly handles empty
enviornment (easy to reproduce in MS-DOS, as I report this in group). Looks
^^
like Steffen fixes (at least, one) bug, related to environment, but up to
now I don't know where to download fixed version. (May be, now you remind
for Steffen to make fixed version available for download?)
SK Arkady, FreeCOM _never_ had a problem with an _empty_ environment, but:
See underlined words above. With empty environment FreeCOM (whic is
currently available for use) _is_ buggy.
SK + with a missing '.' in PATH, long fixed, and
SK + with the MS-DOS-style of an empty environment, you've called broken
SK yourself.
You mean Arkady called MS-DOS-style empty environment broken? Yes, I
call this. But this is MS-DOS and all its bugs become standard and called
So, you've fixed the FreeDOS kernel to issue the broken MS-DOS empty 
environment to programs, did I understood it correctly?

Actually, it would be cleaner to never issue an empty environment. You 
will, for instance, find a reply in the archives from yourself, stating 
that the end of the environment is _not_ marked by '\0\0' (two bytes 
zero) as the poster stated, but by an empty string, hence, when the 
environment is completely empty, there is a single '\0'.
To have a good and working work-around for any program and your own 
advices, it would be best to never pass on an empty environment.

Bye,
--
Steffen Kaiser
---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721alloc_id=10040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] FreeDOS 2035a detail discussion: FreeCOM, menu compatibility

2004-07-19 Thread tom ehlert

steffen)

put MSDOS + current distributed FreeCOM on floppy.
boot, and say F5 (skip everything)

and you'll have a load complaining FreeCOM,
although it definitively gets it's startup path.


Arkady)
it's a plain dull idiotic mathematicians braindead idea
to 'improve' freedos kernel, but break all generations
of distributed FreeCOM's

just my 2 EUROS on that issue

tom







---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721alloc_id=10040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


[Freedos-kernel] About Eric's CLUSTER v ULONG remarks.

2004-07-19 Thread Bart Oldeman
Hi Eric,

please be aware that some structs (such as fnodes) are free-style, but 
most are dictated by RBIL. It's best to use CLUSTER in internal parameters 
and fields etc. because this is either 16 or 32 bits. Just like those 
freedos specific open flags they are completely kernel-internal and have 
no meaning to the outside world.

However, when mirroring an RBIL-dictated structure we should use 
ULONG (which is FD kernel speak for a 32 bit unsigned integer, I'm not 
terribly happy about the naming, but hey, we know what it means and what 
it does by now), it can never be 16-bits. Using CLUSTER there would just 
be obscuring things -- what if some weirdo makes CLUSTER 64 bits? It 
would completely break the mirroring.

Also be careful with LSEEK. The offset you feed to it really is signed -- 
on the other hand with two-s complement it doesn't really matter.

The Not Yet Implemented part about this 2GB files thingy is that 
normally opened files have to fail reads and writes if the current 
offset is beyond 2GB, perhaps also int21/ah=3d should refuse opening files 
 2GB. A special flag for int21/ah=6c is needed to enable 2Gb opens.

Bart



---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721alloc_id=10040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] ludivmul.inc

2004-07-19 Thread Bart Oldeman
On Tue, 20 Jul 2004, Bart Oldeman wrote:

 I'm still not sure if and when I really return, the archives aren't really 
 encouraging... In any case, I appreciate that a bug was found in 
 ludivmul.inc; the same bug was in fact present in the 64 bit version I 
 adapted it from! Well I notified the original author.

I should add that while serious it presently can never be triggered in 
the fd-kernel. All but 2 U4D's use 16bit divisors. The 2 places that use a 
32bit divisor are in initdisk.c. But these two places aren't interested in
the remainder.

Bart



---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721alloc_id=10040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] About Eric's posts.

2004-07-19 Thread Bart Oldeman
Eric,

please please, if you discover that you made a mistake in a post then 
please edit the post while you still can. IMHO It's very annoying to read:


Hmmm this must be the case.



Oh no, sorry, what I said above was wrong, it is like this.


This makes your already long post even longer than necessary, and adds 
unnecessary noise. You're not talking on the phone or IRC here.

Of course this is true for everyone, it's just that Eric seems to make a 
habit out of it. Sorry, maybe you think it's cool to write that way but 
I'm afraid  many people will ignore the rest of your post if you start 
rambling like this.

Bart



---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721alloc_id=10040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] ludivmul.inc

2004-07-19 Thread Bernd Blaauw
Bart Oldeman schreef:
I'm sorry but I simply don't have the time to go through all the other 
patches. If they were reduced to just bug fixes I'll promise that I'll 
have another look though -- I still monitor the mailing list every now and 
then. Guys *any* project that wants to be close to a 1.0 release must be 
in deep freeze, a stabilation, that means that we should really freeze the 
mainline kernel for anything but bug fixes. No optimizations, no 
reformatting, no new fancy macros, no nothing but bug fixes with the 
minimal amount of lines changed. Of course feel free to have your own 
branch, but I don't think it's in the interest of the project to 
use that for a 1.0.

So I can make a deal, you isolate your bug fixes and I'll return and be 
friendly, or you don't and I'll simply disappear. It's that easy.
 

Hi Bart!,
thanks for showing up a brief moment. Arkady is doing a nice job, but I 
think you kernel developers should give him some more time
to work out his changes. At a given moment, he should probably issue a 
code-freeze and then make stuff more readable/review-able
Anyway, Lucho is reviewing Arkady's code, Tom started a private (more or 
less personal) branch, and Jeremy, I think,
was both creating a 2035a (2035 + very conservative patches) and a 
development branch (Arkady's code into CVS).

perhaps the utter-most conservative and really required patches 
(bugfixes) should be provided for review before going into 2035a.
Meanwhile Arkady's version might become 2036 in a later stadium?

all IMHO, ofcourse. It's the kernel (co)developers' opinions which 
should count for you, not mine :)

are you planning on improving MEM again in the near future?
I *still* (sigh!) postponed releasing a new FreeDOS distro..blame it on 
the holidays

Bernd
---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721alloc_id=10040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] ludivmul.inc

2004-07-19 Thread tom ehlert
Hi Bart,

 In any case, I appreciate that a bug was found in  ludivmul.inc
so do I

 What I don't like is that the fix from Arkady (for the 1000th time...)
 does 3 things at the same time -- formatting, fixing, and optimizing.
neither do I like that.

 This makes it impossible to see where things are really fixed. See the
 following is enough:

 --- ludivmul.inc.~1.2.~ Sun Jan 27 14:13:07 2002
 +++ ludivmul.incTue Jul 20 00:35:31 2004
 @@ -88,10 +88,12 @@
 pop bx ; get dividend lo-word
 mov cx, ax ; save quotient
  mul di ; quotient * divisor hi-word (low only)
 +   pushdi ; save divisor hi-word
  xchgax, di ; save in di
  mov ax, cx ; ax=quotient
 mul si ; quotient * divisor lo-word
 add dx, di ; dx:ax = quotient * divisor
 +   pop di ; restore divisor hi-word
 sub bx, ax ; dividend-lo - (quot.*divisor)-lo
 mov ax, cx ; get quotient
 pop cx ; restore dividend hi-word

thanks for that.
I was going to analyse it was well to find the REAL difference to
apply to my kernel branch, your effort saves me some time

and it's again remarkable how little changes are needed wrt. the 200+
line diff's arkady sends.


 I'm sorry but I simply don't have the time to go through all the other
 patches.
neither do I - specially if they are 90% completely useless formatting
changes, 9% introcing LPVOID and Cstr data types, with (at most) 1%
hidden gem inside.

 If they were reduced to just bug fixes I'll promise that I'll
 have another look though -- I still monitor the mailing list every now and
 then. Guys *any* project that wants to be close to a 1.0 release must be
 in deep freeze, a stabilation, that means that we should really freeze the
 mainline kernel for anything but bug fixes. No optimizations, no 
 reformatting, no new fancy macros, no nothing but bug fixes with the
 minimal amount of lines changed.
110% agreed.

 Of course feel free to have your own
 branch, but I don't think it's in the interest of the project to 
 use that for a 1.0.

 So I can make a deal, you isolate your bug fixes and I'll return and be
 friendly, or you don't and I'll simply disappear. It's that easy.

well - I maintain such a kernel branch; however not sure if I catch
every hidden gem...
of course source is available on request.

tom




---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721alloc_id=10040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] ludivmul.inc

2004-07-19 Thread Michael Devore
At 12:55 AM 7/20/2004 +1200, Bart Oldeman wrote:
I'm sorry but I simply don't have the time to go through all the other
patches. If they were reduced to just bug fixes I'll promise that I'll
have another look though -- I still monitor the mailing list every now and
then. Guys *any* project that wants to be close to a 1.0 release must be
in deep freeze, a stabilation, that means that we should really freeze the
mainline kernel for anything but bug fixes. No optimizations, no
reformatting, no new fancy macros, no nothing but bug fixes with the
minimal amount of lines changed. Of course feel free to have your own
branch, but I don't think it's in the interest of the project to
use that for a 1.0.
I am glad someone said this that nicely.  I have been stunned that the vast 
number of relative last-minute pre-1.0 kernel changes which do not consist 
mostly of bugfixes or user-driven requests/needs has been considered a good 
idea by anyone.  Items such as multiple stand-alone changes to source code 
comments which only change indentation levels or add a trailing tab are 
egregiously unnecessary when considered immediately prior to FD 1.0 release.

On the other hand, this is exactly the sort of issue that kills so many 
open source developments. The talent butts heads over what needs to be 
done, no compromise can be achieved, and one group of talent splits away or 
quits in disgust.  It would be very disheartening to see that happen 
(again) with FreeDOS, particularly given how close it is to 1.0.

I don't work on kernel and have kept quiet until now because of that, but 
as this whole mess appears to be coming to a crisis, my modest addition to 
the discussion is this suggestion:  perhaps self-tested optimizations can 
be included along with bugfixes and enhancements, since they actually 
affect code and give the programmer an opportunity to stamp the code with 
and demonstrate his talent?


---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721alloc_id=10040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


[Freedos-kernel] Kernel status

2004-07-19 Thread Kenneth J. Davis
There recently has been discussion of the kernel,
of the upcoming FreeDOS 1.0 release, and of changes
which should or should not be accepted.
As acting kernel maintainer, this is how I am trying
to ensure stability while making progress and trying
not to 'upset the talent' as it were.
As I said in my last message:
The official FreeDOS kernel (well at least the one
in sourceforge's cvs) _is_ branched.  The official
FreeDOS distribution should ONLY use released kernels.
Right now this is still Bart's 2035 kernel.  Unofficial
freedos distributions, including those who include
the FreeDOS kernel with their software may elect to
use the release kernels, the stable cvs branch, or
the development branch -- HOWEVER support (at least
from me) will only be provided for release kernels and
_latest_ cvs builds.
The whole reason for the branch is so people can gain
access to Arkady's and others improvements while
still providing a stable platform for those who do not
wish to deal with issues that may crop up (such as
the current FreeCom failing to load one).
My goal is to prevent any head-butting, unstabling changes
for distributions, and continue improvements.  I am
trying to accomplish this by using a variation of the common
stable/development cvs branches used by other projects.
We have kernel developers who want minimal changes
(only bugfixes and limited optimizations), they can
use the stable series.  We also have kernel developers
who want to optimize, bugfix, and other changes, they
should use the development kernel.  As I am in neither
(or perhaps its both) groups, this is my compromise.
Anyone who feels they can do a better job, well the
kernel maintainer position is still open.  Please keep
in mind, I am open to suggestions and changes -- in particular,
with cvs, it is possible for multiple developers to
work on the same source if they are willing to communicate.
So let me end this with:
Please keep the the discussion here related to bugs,
bugfixes, optimizations, or other directly _kernel_
related issues.  ALL arguing should be done via
private emails or on other lists -- debates limited
to concrete details, examples, etc. about the merits
or harm of a [potential] patch are of course welcomed.
Hopefully this clears any doubts or confusion to the
future of the kernel.  It is being maintained, and as
best as possible, compromise between the developers
is trying to be achieved.
Thank you,
Jeremy Davis
interim kernel maintainer

---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721alloc_id=10040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] About Eric's CLUSTER v ULONG remarks.

2004-07-19 Thread Arkady V.Belousov
Hi!

20--2004 01:09 [EMAIL PROTECTED] (Bart Oldeman) wrote to
[EMAIL PROTECTED]:

 Glad to hear you, Bart. Have some questions to you.

BO please be aware that some structs (such as fnodes) are free-style, but
BO most are dictated by RBIL.

 You develop the fnode structures, so should know the better. Thus, may
you yourself fix the bugs in lfnapi.c (where used removed f_dmod field
instead F_DMOD mask)? Also, I wish to know: may we remove f_cluster_offset
field (and use in fatfs.c:map_cluster() stack variable)?

BO However, when mirroring an RBIL-dictated structure we should use
BO ULONG (which is FD kernel speak for a 32 bit unsigned integer, I'm not

 For 32-bit unsigned integers should be used UDWORD type.

PS: Do you see the patch from tom, related to unfreed near fnodes at
critical handler?




---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idG21alloc_id040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] FreeDOS 2035a detail discussion: FreeCOM, menu compatibility

2004-07-19 Thread Arkady V.Belousov
Hi!

19--2004 21:56 Arkady V.Belousov wrote to
[EMAIL PROTECTED]:

SK the PATH=. variable?
AVB  MS-DOS (neither kernel, nor MS-command.com) NEVER INCLUDES SUCH
AVB VARIABLE INTO ENVIRONMENT (empty or not). If in config.sys not present menu
AVB or some SETs, then for INSTALL= MS-DOS passes empty environment into
AVB program (in its style), for SHELL= it places zero into PSP[2C].

 ...or vice versa, I not clearly remember. In any case, currently
(available to download) FreeCOM doesn't runs under MS-DOS if there are no
menu or SETs in config.sys.

SK Because this introduces known incompatibly with existing implementations,
AVB  Blame existing implementations, which doesn't work under MS-DOS (and
AVB why they should work in FreeDOS, if they written for MS-DOS?!).

 if they written for MS-DOS and don't work there?!




---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idG21alloc_id040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] FreeDOS 2035a detail discussion: FreeCOM, menu compatibility

2004-07-19 Thread FreeCOM
Arkady V.Belousov wrote:
Hello,
19--2004 13:59 [EMAIL PROTECTED] (Steffen Kaiser) wrote
to [EMAIL PROTECTED]
[EMAIL PROTECTED]:

   You mean Arkady called MS-DOS-style empty environment broken? Yes, I
call this. But this is MS-DOS and all its bugs become standard and called
SK So, you've fixed the FreeDOS kernel to issue the broken MS-DOS empty
SK environment to programs, did I understood it correctly?
   No. I fix the task.c:ChildEnv(), which was wrongly scans empty
environment with non-MS-DOS-style layout (only one empty ASCIIZ string). And
yes, currently ChildEnv() for empty environment uses MS-DOS layout.
SK Huh? So I did understood it correctly!?
 No.
SK What does the kernel do now, when the originally correct empty
SK environment layout arrives there?
 Originally correct - with one empty ASCIIZ string? Currently prepared
MS-DOS-style empty environment. (DO WE SAY ABOUT BRAND NEW OS OR ABOUT
MS-DOS CLONE?!)
We talk about FreeDOS, usually.
SK Does it care at all, well, it shouldn't?
 ?
Task.c:ChildEnv(), which was wrongly scans empty environment with 
non-MS-DOS-style layout For me this phrase means ChildEnv() is 
analyzing an existing environment passed into the function and will now 
honor only the MS-DOS format of an empty environment. So I wondered why 
ChildEnv() cares about the second '\0' of the MS-DOS-style empty env at all.
When the function needs to prepare such environment, there is a 
diffenerence, of course.

What you have against?
SK You've broke the compatibly with existing FreeDOS-near programs. Have you
 Please, name existing FreeDOS-near programs, which works under MS-DOS
and not works under (patched by me) FreeDOS.
SK What bugs me is: You've intentionally broke the compatibly with existing
SK implementations for no good reason,
 WHICH COMPATABILITY I BROKE?!
The compatibly between the FreeDOS kernel and the FreeDOS shell.
And, because you've mentioned yourself that the knowledge of the MS-DOS 
style empty environment is damn brand-new, any other FreeDOS program 
probably used in INSTALL=.

SK Actually, it would be cleaner to never issue an empty environment. You
   MS-DOS may. Also, not issue empty environment anyway mean don't make
availabel startup path (what makes FreeCOM unhappy).
SK To pass a non-empty environment to a programs means that it is not able to
SK get argv[0]??
 How you read?! Not pass empty environment mean putting zero valie
into PSP[2C] word (as MS-DOS does, BTW). Or you mean, that someone should
ADD into ChildEnv() adding of some garbage into environment to make it
_look_ like non-empty?!
For me an empty environment is an existing environment with no variable 
defined; and no environment when PSP[2C] contains zero.

And yes, instead of rushing out and fix something you claim is a bug 
(because it is not so as in MS-DOS), have a work-around in place to let 
existing programs work. And, that way, instead of to bend other people 
to your willing, give them the freedom to decide themselves and, 
probably, have a remark about the issue.

In this particular case: It would be as easy as to pass at least one env 
variable to the program.

SK How can that be? How got programs, e.g. FreeCOM, aquire its
SK start path from argv[0] during the time, the default environment included
SK the PATH=. variable?
 MS-DOS (neither kernel, nor MS-command.com) NEVER INCLUDES SUCH
VARIABLE INTO ENVIRONMENT (empty or not). If in config.sys not present menu
or some SETs, then for INSTALL= MS-DOS passes empty environment into program
(in its style), for SHELL= it places zero into PSP[2C]. _My_ difference with
MS-DOS in this respect is that I always pass (empty) environment (but with
startup path), both for INSTALL= and SHELL=.
I don't care about MS-DOS, and you as well. Why else would you pass 
non-zero to SHELL=?
To gain a feature, to gain FreeDOS rather than another MS DOS.

Utilities, unhappy). Also, MS-DOS _passes_ empty environment, why we
shouldn't?
SK Because this introduces known incompatibly with existing implementations,
 Blame existing implementations, which doesn't work under MS-DOS (and
why they should work in FreeDOS, if they written for MS-DOS?!).
Hmm, I thought we implement FreeDOS.
SK and I expect that such stuff is discussed in advance among all affected
SK people.
 I TRY TO DISCUSS, BUT SILENCE IS ANSWER.
You mailed a bugreport, no word about to immediately release a kernel 
that breaks compatibly with FreeCOM.

Here it is:
FreeCOM incorrectly handles empty environment, _as this understanded by
MS-DOS_. Trouble is that for empty environment MS-DOS places before
16-bit counter not _one_, but _two_ zero bytes. This is easy to see: 
make empty config.sys with line INSTALL=FREECOM.COM and FreeCOM will not
detect presence of path after environment.

SK For me this discussion looks like whether or not I have to emit another
SK pre-compiled FreeCOM for each change of a line of code.
 Not for each change, but some changes are important 

Re: [Freedos-kernel] ludivmul.inc

2004-07-19 Thread Bernd Blaauw
Arkady V.Belousov schreef:
Hi!
19--2004 16:08 [EMAIL PROTECTED] (Bernd Blaauw) wrote to
[EMAIL PROTECTED]:
BB to work out his changes. At a given moment, he should probably issue a
BB code-freeze and then make stuff more readable/review-able
May you point, what in my code isn't readable (or, at least, less
readable, than in original code)? :(
 

replace readable by understandable for inexperienced C programmers
the point is, the code should be as understandable as possible to as 
much people as possible, so everyone potentially can
review the code, and contribute new code.

I can't truely judge how understandable source code is. But, for 
example, I can see if I understand something like algorythms/code in 
config.c

I'll have a look at FreeDOS again one of these days - I'm playing too 
much games anyway instead of releasing a new FreeDOS..

Bernd
---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721alloc_id=10040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] FreeDOS 2035a detail discussion: FreeCOM, menu compatibility

2004-07-19 Thread Arkady V.Belousov
Hi!

19--2004 21:14 [EMAIL PROTECTED] (FreeCOM) wrote to
[EMAIL PROTECTED]:

 SK What does the kernel do now, when the originally correct empty
 SK environment layout arrives there?
  Originally correct - with one empty ASCIIZ string? Currently prepared
 MS-DOS-style empty environment. (DO WE SAY ABOUT BRAND NEW OS OR ABOUT
 MS-DOS CLONE?!)
F We talk about FreeDOS, usually.

 And what is FreeDOS?

 SK Does it care at all, well, it shouldn't?
  ?
F Task.c:ChildEnv(), which was wrongly scans empty environment with
F non-MS-DOS-style layout For me this phrase means ChildEnv() is
F analyzing an existing environment passed into the function and will now
F honor only the MS-DOS format of an empty environment.

 Was: when non-MS-DOS-style empty environment was arrive to original
ChildEnv() it was generates garbage instead someting valid, because there
was wrong process for such environment. On the other side, by itself, when
no environment is defined (no variables in exec block or ps_environ contains
zero), original ChildEnv() was create non-MS-DOS-style empty environment
(with only one zero ASCIIZ string).

 My fix: ChildEnv() now accepts both environment styles, but itself for
empty environment produces MS-DOS-style layout.

  WHICH COMPATABILITY I BROKE?!
F The compatibly between the FreeDOS kernel and the FreeDOS shell.

 Compatability with bug? Isn't better to fix the bug, instead support
buggy code in the kernel (which compatible with non-fixed bug), and which
will not work with other, compatible programs?

F And, because you've mentioned yourself that the knowledge of the MS-DOS
F style empty environment is damn brand-new,

 Yes, this almost undocumented and not all peoples know this bug.

F any other FreeDOS program probably used in INSTALL=.

 ? You can't use program in INSTALL= if (1) it searches for startup, but
(2) expects non-MS-DOS-style empty environment, and (3) before INSTALL= no
menu or SETs. But this is true for both MS-DOS and FreeDOS (as patched by
me). Isn't this is goal of FreeDOS - reproduce MS-DOS behavior as much
close, as possible?

F And yes, instead of rushing out and fix something you claim is a bug
F (because it is not so as in MS-DOS),

 If something doesn't work in MS-DOS, this _is_ bug, notwithstanding who
claims this. (This statement slightly reduced ad absurdum, but goal of
FreeDOS is a compatability with MS-DOS, including its bugs).

F have a work-around in place to let existing programs work.

 But this not rejects fact of existing bug (not correctly runs under
MS-DOS), which should be fixed in any case.

F And, that way, instead of to bend other people
F to your willing, give them the freedom to decide themselves and,
F probably, have a remark about the issue.

 You _already_ fix the bug, so you already decide. Question is only:
when fixed version will be available to use?

  MS-DOS (neither kernel, nor MS-command.com) NEVER INCLUDES SUCH
 VARIABLE INTO ENVIRONMENT (empty or not). If in config.sys not present menu
 or some SETs, then for INSTALL= MS-DOS passes empty environment into program
 (in its style), for SHELL= it places zero into PSP[2C]. _My_ difference with
 MS-DOS in this respect is that I always pass (empty) environment (but with
 startup path), both for INSTALL= and SHELL=.
F I don't care about MS-DOS, and you as well.

 _I_ care.

F Why else would you pass non-zero to SHELL=?

 Non-zero=empty environment? Becuase beside CONFIG= and other SETs
it may be useful to pass startup path (as you yourself mention in comments
inside ChildEnv()). For example, this allows user to rename shell executable
(as I do).

F To gain a feature, to gain FreeDOS rather than another MS DOS.

 ?

  Blame existing implementations, which doesn't work under MS-DOS (and
 why they should work in FreeDOS, if they written for MS-DOS?!).
F Hmm, I thought we implement FreeDOS.

 Hmm. I thought we implement MS-DOS compatible OS.

  I TRY TO DISCUSS, BUT SILENCE IS ANSWER.
F You mailed a bugreport, no word about to immediately release a kernel
F that breaks compatibly with FreeCOM.

 _I_ _report_ bug in FreeCOM. If now FreeDOS is closer to MS-DOS and
FreeCOM now incorrectly works in both under MS-DOS and FreeDOS (with empty
environment), who wrong?

  Not for each change, but some changes are important and should be
 emited immediately.
F Importance is a matter of taste.

 Of course. But requests to fixed version may (and do) indicate
importance.




---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idG21alloc_id040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] FreeDOS 2035a detail discussion: FreeCOM, menu compatibility

2004-07-19 Thread tom ehlert
My dear Mr. Belousov,

  _I_ _report_ bug in FreeCOM. If now FreeDOS is closer to MS-DOS and
 FreeCOM now incorrectly works in both under MS-DOS and FreeDOS (with empty
 environment), who wrong?

do you really think a new kernel that breaks all installed FreeCOM's
in the wild is an improvement ?

Do you really want to force everyone to update to a new freecom?
(people often update only one component)

Do you really want to see all the
  'updated to new kernel, now freecom doesn't work anymore'

being a possibly talented programmer is one thing.

but handling real world issues decently (and silently) seems not
to be one of your virtues.

tom






---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721alloc_id=10040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] FreeDOS 2035a detail discussion: FreeCOM, menu compatibility

2004-07-19 Thread Arkady V.Belousov
Hi!

19--2004 22:11 [EMAIL PROTECTED] (tom ehlert) wrote to Arkady V.Belousov
[EMAIL PROTECTED]:

te do you really think a new kernel that breaks all installed FreeCOM's
te in the wild is an improvement ?

 Workaround for current bug in FreeCOM is easy, this is question of two
lines in main.c before p_0(): if (empty environment) CmdSet(A=B);. But
this works only when FreeCOM called through SHELL=, this not helps for
INSTALL= - neither in orignal 2035, nor in my edition; also, if some
application with empty environment tries to call FreeCOM, FreeCOM again
wrong. And again, notwithstanding if this workaround is present (and eats
extra memory in each following environment) or not, bug anyway should be
fixed.

te Do you really want to force everyone to update to a new freecom?
te (people often update only one component)

 FreeCOM executable included into package with kernel executable.

te Do you really want to see all the
te   'updated to new kernel, now freecom doesn't work anymore'

 It work, unless config.sys defines no enivoronment (no menu and no
SETs).




---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idG21alloc_id040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


[Freedos-kernel] Kernel patch policy, branches, and FreeCOM

2004-07-19 Thread Eric Auer

Hi all, Arkady:

PLEASE do make FreeDOS 2035a behave as wrong as 2035, because
people will want to compare 2035a to 2035, and if things happen like

- you cannot format unformatted drives (disk access flag broken)
- stable version of FreeCOM (0.82pl3, as opposed to 0.82pl3xyz testing)
  crashes if you try to use F5 at startup

then it is very hard to get the motivation to do experiments with 2035a.
If you insist on cloning MS behaviour for F5: You can add a SYS CONFIG
variable temporarily, which has to default to FREEDOS behaviour. Then
those people which NEED the MS behaviour (do they exist? Why is it needed?)
can still enable that mode, whil other people will simply be able to use
2035a as a replacement for 2035 and check if things get better by that.

I am sure 2035a fixes several bugs of 2035, but please tell us in great
detail which of your many patches actually fix bugs, and which! Most of your
patches contain improved comments and small optimizations. If one such patch
also fixes a BUG, it is usually very hard to notice, especially if your
patch is very LONG but your comment is very SHORT. Your patch announcement
mails often contain at most 5 lines of explanation each, if at all.

Another thing which would be really GOOD to have: Please let Lucho put all
patches online, either separately or in one ZIP/RAR/TGZ/..., along with a
SEPARATE text file which tells for every single patch file
- when you sent it to freedos-kernel / what the file date is
- whether and which bugs it fixes
- whether it contains comment improvements
- whether it contains optimizations and whether those have been tested to
  be 100% compatible with the old implementation

Thanks a lot! That should allow Jeremy and Tom to use more of your patches
for the STABLE branch of the kernel, and it should allow people who are
interested in the DEVEL / cutting edge branch of the kernel to quickly find
the corresponding patch if they find a bug. Example: I found that the changed
dsk.c or something related to it no longer honours the disk access flag, so
it is impossible to format disks which do not already have a valid boot sector
now. Because it is too hard to find out which patches affected dsk.c in what
way, I would probably simply replace the WHOLE dsk.c - or even the whole kernel
if I would have been able to pinpoint the problem to probably dsk.c - by the
classic 2035 version again, just to get FORMAT working again.
If, however, it is documented which patch does what, and if the patches are
somehow available for easier download than digging deep in my mail archives,
then I can REVERSE APPLY single patches until I find the one patch which broke
format for me. This will also make it easier for you and me to repair things,
and will indirectly improve acceptance of your patches for the STABLE kernel.

Eric



---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721alloc_id=10040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] ludivmul.inc

2004-07-19 Thread Arkady V.Belousov
Hi!

19--2004 10:31 [EMAIL PROTECTED] (Michael Devore) wrote to
[EMAIL PROTECTED]:

MD I am glad someone said this that nicely.  I have been stunned that the vast
MD number of relative last-minute pre-1.0 kernel changes

 I begun to (more deeply) work on kernel only when Bart quits his
maintenance (before this I was hardly limited by his opinions; of course,
now I also not completely free and I brake my tryings to fix all and at
once). This is no my guilty that this event adjacent to awaited 1.0 release.

MD as this whole mess appears to be coming to a crisis, my modest addition to
MD the discussion is this suggestion:  perhaps self-tested optimizations can
MD be included along with bugfixes and enhancements,

 May you example what is self-tested optimizations?

MD since they actually affect code and give the programmer an opportunity
MD to stamp the code with and demonstrate his talent?

 _Me_ not need to demonstrate my talent (or its missing). I myself know
what I may do and this is enough for me.




---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idG21alloc_id040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] ludivmul.inc

2004-07-19 Thread tom ehlert
BB replace readable by understandable for inexperienced C programmers

  Unimportant.
here I have to agree - kernel programming is nothing for inexperienced
programmers, and will never be.

  Note: this is myth.
well - my private email archives show that 'arkadifying code' is used as
synonym for 'hardly understandable cryptic stuff' - both incoming and
outgoing.

SOMETIMES this may be useful - and we used it: the kernel's memory
model is probably beyond most peoples understanding

using it ALL the time is nonsense.


However, the main kernel programming style was set forth ~10 years ago
by Pat Villani in the kernel original sources.

Both Bart and I didn't agree 100% with it (COUNT is discussable at
least), but agreed to KEEP this style as much as reasonable.








  You often read tom's words about russian magician,
 which makes cryptic code and you trust these words. Yes, sometime I use not
 very common tricks, but I (always) try to comment all such places! If you
 see my code (and, especially compare it with original code), you find this.

  For example, compare original ludivmul.inc and my edition. I think,
 this is light example of what is my changes.

  Another example. Remeber, as you try to comment Umb_State in config.c,
 which was initialized by magic value 0, 1, 2? Compare _now_ with my edition,
 where used (commented) enumerations UMB_NONE, UMB_DONE and UMB_REQ.

  And, if sometime my comments not enough, I alway open and hear, and may
 comment more, if this will be asked.




 ---
 This SF.Net email is sponsored by BEA Weblogic Workshop
 FREE Java Enterprise J2EE developer tools!
 Get your free copy of BEA WebLogic Workshop 8.1 today.
 http://ads.osdn.com/?ad_idG21alloc_id040oplick
 ___
 Freedos-kernel mailing list
 [EMAIL PROTECTED]
 https://lists.sourceforge.net/lists/listinfo/freedos-kernel


-- 
Best regards,
Tom Ehlert
mailto:[EMAIL PROTECTED]
+49-241-79886


Re: [Freedos-kernel] Kernel patch policy, branches, and FreeCOM

2004-07-19 Thread tom ehlert
Hello Eric,

 I am sure 2035a fixes several bugs of 2035

found the ret_ah bug. if that has real world implications is unknown.

found the Ulong 32%32 bug - impressive, but 100% irrelevant to the
kernel as all real world use will work 100% ok.

claims to have found a bug in umb_link code for a001:
  now it doesn't work either, and is again irrelevant as noone uses
  (for good reasons) /I=a000-afff

possibly made the graphical MENU better - but certainly broke Eric's
and mine non-graphical config.sys

found a bug so now MS Smartdrv loads - unfortunately now FreeCOM
doesn't work any longer (even if that's a bug)

IMO that's less then impressive


just as a OT sidenote, found somewhere on joelonsoftware.com:
the old WIN developers took it *personally* if some old stuff wouldn't
run any longer. this went as far as:
  they found that SIMCITY would run beutiful on DOS, but crash in
  windows. after some lengthy debugging they found that simcity frees
  some memory - and uses it afterwards.
  sure this works in DOS - and fails badly in a multitasking
  environment where this memory is reused by someone else.

now there 2 solutions for that

  solution a) say this code is buggy, ask manufacturer

  solution b) implement 'is the current task simcity ?'
  if so, delay the *real* free for a couple of seconds.

they (the MS developers) took b)

and for me this ends the threat.

tom

















---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721alloc_id=10040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] ludivmul.inc

2004-07-19 Thread Arkady V.Belousov
Hi!

19--2004 22:42 [EMAIL PROTECTED] (tom ehlert) wrote to Arkady V.Belousov
[EMAIL PROTECTED]:

BB replace readable by understandable for inexperienced C programmers
  Unimportant.
te here I have to agree - kernel programming is nothing for inexperienced
te programmers, and will never be.

 I mean not this, I mean, that in given case is unimportant how to
understand readable - by experienced or not programmers.

  Note: this is myth.
te well - my private email archives show that 'arkadifying code' is used as
te synonym for 'hardly understandable cryptic stuff' - both incoming and
te outgoing.
te SOMETIMES this may be useful - and we used it: the kernel's memory
te model is probably beyond most peoples understanding
te using it ALL the time is nonsense.

 :( Say me, where below is 'hardly understandable cryptic stuff'?

__O\_/_\_/O__
enum {  UMB_NONE,   /* do nothing */
UMB_DONE,   /* UMB initialized */
UMB_REQ,/* DOS=UMB detected */
};

static UBYTE HMAState BSS_INIT(HMA_NONE);
static UBYTE UmbState BSS_INIT(UMB_NONE);
[...]
/* fill HMA with buffers if BUFFERS count =0 and DOS in HMA  */
if (wantedbuffers  0)
  wantedbuffers = -wantedbuffers;
else if (HMAState == HMA_DONE)
  buffers = (0xfff0 - HMAFree) / sizeof(struct buffer);
_
  O/~\ /~\O




---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idG21alloc_id040op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel