[<<] [<] Page 1 of 1 [>] [>>] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Subject:
fixed, fixed, ELKS bugs are all fixed
From: Greg Haerr ####@####.#### Date: 14 Jul 1999 16:49:18 -0000 Message-Id: <01BECDE6.1D213400.greg@censoft.com> Al, I've now fixed the select() bug in ELKS, and, since MicroWindows now runs on my system, have also fixed the mouse down bug for window moves in MicroWindows. In addition, other changes to the kernel are proposed, for better debugging. Last night I spent some time really getting to know the ELKS kernel, and decided that I'd take a crack at the select() problem. In the mean time, I cross-compiled bcc, as86, and ld86, and made all of them run under elksemu, and they work, although there are problems. I have some binaries to play with... So, I figured the problem must be in tty_select(), since that's the only select routine called. Upon further inspection, looking at the SEL_IN case, the only routine called was chq_peek(). Lo and behold, chq_peek returns 0 if there's no data, otherwise it returns the next character. And that's the bug. Your mouse works because it never emits a zero byte. Any mouse, like mine, and Thomas's, that send a zero byte will cause chq_peek() to return 0 on that byte, and select won't work right thereafter. A fix is attached in the next email. Next, the bug with MicroWindows is that the bcc compiler doesn't support pass-by-structure properly. (My bcc bug list is growing by the minute, as it won't compile itself without some changes, more on that later) So, I have a fix on that, I'll send in the next email. Bcc was computing the x,y location wrong for a POINT data structure, which was two shorts. MSC passes two shorts like a long, and BCC calls memcpy(), which still doesn't work. Finally, I am also on a quest to reduce kernel size. My rewrite of dircon.c added functionality and reduced size by 400 bytes. But the problem is that size86 doesn't work well with ELKS *.o files. The bug is that sched.h uses a .comm variable tasks[], that every ELKS kernel file includes, thus giving the *wrong* size. So, I'm attaching that bug fix as well, and everyone can run size86 *.o to see how big there files are... Greg | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[<<] [<] Page 1 of 1 [>] [>>] |