Content Type
Profiles
Forums
Events
Everything posted by Drugwash
-
KernelEx -- On building, debugging and related matters...
Drugwash replied to Drugwash's topic in Windows 9x Member Projects
If I may ask, what are the implications of this wrong name field for the overall KernelEx operation? Since it's been introduced in 4.5.2 and that version appears to work correctly within its capabilities, could this be a big problem or it's just a cosmetic issue? Anyway, looking at the code in util.h, it all appears to be a single #define: #define _Declare_Virtual_Device(name, ver_major, ver_minor, ctrl_proc, device_num, init_order, V86_proc, PM_proc, ref_data) \ BOOL __stdcall ControlDispatcher(DWORD, DWORD, DWORD, DWORD, DWORD, DWORD); \ \ void __declspec(naked) name##_CTRL(void) \ { \ __asm PUSH EDI \ __asm PUSH ESI \ __asm PUSH EDX \ __asm PUSH ECX \ __asm PUSH EBX \ __asm PUSH EAX \ __asm CALL ctrl_proc \ __asm CMP EAX, TRUE \ __asm RET \ } \ \ EXTERNC struct VxD_Desc_Block name##_DDB = \ { \ 0, DDK_VERSION, device_num, ver_major, ver_minor, 0, \ #name, init_order, (ULONG)name##_CTRL, (ULONG)V86_proc, (ULONG)PM_proc, \ 0, 0, ref_data, 0, 0, 0, 'Prev', sizeof(struct VxD_Desc_Block), \ 'Rsv1', 'Rsv2', 'Rsv3' \ } The name field is retrieved from the #name variable and there may be a reason why it's been made like this - flexibility comes to mind first. But given the way the structure is declared, I can't see a way to translate whatever name may be fed to the struct, into a fixed 8-byte array. Of course, using a fixed array as you mentioned above is accepted by the compiler, but the declaration loses its flexibility. What would be the best way to handle this, I wonder? -
Such leftovers may cause huge problems. Some virii place their components in the temporary folder and they launch at startup. There's many years since I used the set of commands below in AUTOEXEC.BAT and I don't recall ever having a problem with an installation: @DELTREE /y C:\windows\cookies >NUL @DELTREE /y C:\windows\history >NUL @DELTREE /y C:\windows\locals~1\tempor~1 >NUL @DELTREE /y C:\windows\tempor~1 >NUL @DELTREE /y C:\windows\temp >NUL @MD C:\windows\temp >NUL The above will remove any traces of cookies, document history, temporary internet files (from IE only) and the Temp folder, then it recreates Temp. In the extreme situation that an application does require files in Temp upon reboot, you may temporarily disable deletion and recreation of Temp (place REM in front of each of the last two lines). Oh and I never use Recycle Bin, it's completely disabled - everything I delete goes directly into the void. Virii do have the nasty habit of hiding in there too.
-
KernelEx -- On building, debugging and related matters...
Drugwash replied to Drugwash's topic in Windows 9x Member Projects
The definition of VxD_Desc_Block is in VMM.INC found in the 98 DDK. The name field is an 8 byte array (8 spaces). There may be something wrong with the declaration of that struct in util.h, so that it automatically adds an EndOfString character which replaces the rightful space. Xeno might know about this and may have not found a (simple) solution to it so he left it as is. That's just an assumption though. On another note, my latest build still throws WinSta0 error. I'm stumped. -
Just for clarity: C:\logo.sys --> startup logo C:\WINDOWS\logow.sys --> 'waiting for shutdown' logo (Please wait...) C:\WINDOWS\logos.sys --> shutdown logo (It is now safe to turn off...) A logo.sys in the root of the bootable drive will replace the default startup logo bundled with IO.SYS. Image must be 320x400px, 256 colors (8bpp).
-
KernelEx -- On building, debugging and related matters...
Drugwash replied to Drugwash's topic in Windows 9x Member Projects
It's fine, but do you replace every files? The WinSta0 error was fixed in apilibs\kexbases\user32\winsta.c Of course. As I mentioned before, I always deploy in a separate folder, to avoid any possible mix with older files or settings. I don't even have enough free space to hold two separate source folders (due to the temporary files), so I have to delete previous source folder before deploying the new one and start building. Dunno how come this error still propagates. I'll soon test the very latest pull. -
KernelEx -- On building, debugging and related matters...
Drugwash replied to Drugwash's topic in Windows 9x Member Projects
That's good news, regarding GOM! As for GitHub, I only use the web interface from the browser and I don't have a GitHub account. To get the files, I click on the big ZIP button, which - at least theoretically -should pack the current files and deliver the package for download. Am I doing anything wrong? I used to have TortoiseSVN - the old version that was still compatible with 9x - but I had to uninstall it long ago because it was significantly slowing down the system because of its menu hooks (and not only). Right now I see latest commit is Set WindowsGhosting in PROCESSINFO structure to TRUE (default) (2 hours ago). Here's a screenshot: image -
KernelEx -- On building, debugging and related matters...
Drugwash replied to Drugwash's topic in Windows 9x Member Projects
The report from rainyd, in good faith, confirms that GOM plays well with the official KernelEx 4.5.2, so we know it's nothing inherited. That's always good to know when hunting for bugs in alpha/beta versions. Also, Mr. Loew, as a developer, confirms that there will always be certain bugs and incompatibilities, because we mostly work with original MS libraries - no matter which OS version they come from - and sometimes they do contain bugs or incompatibilities with drivers or whatever other libraries/applications. Some smart people, over the years, have patched original libraries to correct bugs or enhance functionality, but just as well, developers of (older) software that knew about those bugs, may have worked around them or even exploited them for their own purpose, in which case a fixed library can and will cause malfunction in certain applications. As you see, we're on shallow grounds and we need enough feedback to go in the right direction, so bear with people that try to help as they can, without being themselves programmers or power users. A 'thank you' is enough for good willing, even if there's no useful information there - at some point it might be. I welcome anybody that's trying to help! Now, to the matter at hand: Leyok, please double-check your private setup, make sure it's in sync with GitHub - especially kexbaseS - because it still doesn't work, same error "cannot open WinSta0". At first reboot after installation it was about to display a crash in explorer.exe but it froze before painting the whole dialog and I rushed to hit Reset instead of checking the log file. I've seen the WinSta0 error after the second reset. There may also be other settings in certain project files, because some files come out much larger than yours: kexbaseN, kexCOM, sheet. I have still to test your latest build posted above. -
I've had that "bug" under XP, so it may not be KernelEx related. In my case, it turned out to be some GoogleAPI, GoogleAJAX or something like that, blocked by my add-ons. Apparently, nowadays no site can run without Google stuck in the middle and I don't like that because I don't trust Google and I don't (want to) use Google in any of its forms. Anyway, please double-check if some add-on or third-party tool blocks access to the above or anything similar and try to unblock them. A browser restart may be required.
-
KernelEx -- On building, debugging and related matters...
Drugwash replied to Drugwash's topic in Windows 9x Member Projects
Hey guys, you know I always do whatever I can to help. So as long as I'm alive and got an Internet connection, I'm all in. Now, about GOM, latest 9x-compatible version is 2.1.43.5119. That one also installs from the 2.1.47.5133 full kit, regardless whether KernelEx is enabled and in Win2k compatibility mode for it.. I'm not sure about any newer version, if any, because I haven't checked for updates and never let it check by itself. I believe those versions may be found at some old versions site - they're little over 10MB each. Dunno if Gretech still keep any old versions available for download - don't think so, they use third-party hosting anyway, if I recall correctly. Anyway, I have a hunch that GOM might do something to the desktop when the About shows up, maybe still related to the foreground window or the desktop itself and the mouse gets the wrong coordinates for the clicks. There used to be a tool that reported all API calls for a given process or set of processes, but I forgot its name and I'm not sure it works (correctly) under 98SE. But it may prove useful to debug GOM, see what's going on. I'll see if I can recall the name or find it amongst the already installed tools. -
KernelEx -- On building, debugging and related matters...
Drugwash replied to Drugwash's topic in Windows 9x Member Projects
Is the GitHub in sync with latest changes? I see latest commit was two days ago (at least by my side). I'll try to build sometime later, got some domestic chores to attend to right now. I'm glad you found the problem with MemPanel, good job! Out of curiosity: what was it exactly? I may try to perform some extra testing, to make sure everything's alright. I'm sure GOM Player will come around at some point. Too bad they stopped supporting 98SE, but they apparently still keep ME in the boat so maybe we can trick it into installing on 98SE anyway, with help from KernelEx. Oh and I love it when it's peace and understanding. Let's try and keep it that way, OK? B) I'll be back! -
Guys, you're funny. If you all stop making assumptions and just go with facts and explanations where necessary, there wouldn't be so much wasted web space. But on the bright side, this discussion got me relaxed, because I got so aggravated today when the guy next door put my aunt's stuff into the washing machine at 70°C regardless of the colors. Recap: • PROBLEMCHYLD does not actively USE KernelEx on his main machine(s) but does and has done regular TESTS with various versions. • PROBLEMCHYLD has always reported bugs directly to Xeno86 in private, therefore all other members here had no idea about this. • Some people may use certain software without others knowing. Speak loud and clear, ask and you shall receive an answer. • Incompatibilities have been, are and most likely will always be between KernelEx and apps running on a vanilla Windows 9x. Disable it for affected modules and that's it. • Incompatibilities have been, are and most likely will always be between KernelEx and apps running with uSP, because there is no such thing as a perfect setup. Report it, work around it, live with it until it's fixed (if possible). • People like Xeno86, Tihiy and others have worked hard for KernelEx. So did Gape, PROBLEMCHYLD and others for uSP. Let us respect each-other's efforts and work together, instead of tossing the dead cat from one's yard to another's. Now I'll go get myself a beer. Be good, guys - we're all in the same boat!B) some typos, as usual...
-
KernelEx -- On building, debugging and related matters...
Drugwash replied to Drugwash's topic in Windows 9x Member Projects
Thats because its missing function in PSAPI.DLL. Thats the whole point of the project right? To do the impossible.I was hoping if we got the missing functions implemented, then just maybe we have a shot at running it. That thing, on the page I linked to above, in line with version 1.1 says "Windows i386". That's the first available version and it's quite old. Subsequent version says "Windows NT4,, XP, 2000, 2003, Vista" and then further versions say "Windows (all)". Well, obviously those guys never took into account that on this Earth there is an operating systems family (un)officially called Windows9x that a lot of people still use. Not even the first version of that thing was ever compatible with Windows9x. I've built the agent from the 1.1.7 sources yesterday; it got built right off the bat, with no changes whatsoever, under my 98SE+VC6. But it didn't work - neither in default mode, nor Win2k compatibility. The precompiled executables for version 1.1 didn't work either. At this point, considering where things are going to on the bigger scale, I was thinking whether we wouldn't be better off taking XP, labeling it "Windows 98", changing to Classic Theme and get over with it. Because we sure go that way with all this "upgrading". I wanna go another way: disect the newer standards, build 9x-compatible support for them and then build my own applications that are 100% 9x-compatible and 100% compatible with newer standards. Oh and of course 0% compatible with NT-based platforms - give'em a taste of their own medicine, why not!? Of course, this is purely my personal opinion and it means no disrespect to anybody's work, here or elsewhere. -
Create a bootable CD/DVD from a set of floppies
Drugwash replied to Multibooter's topic in Windows 9x/ME
Quod Erat Demonstrandum. Thank you! I rest my case. -
KernelEx -- On building, debugging and related matters...
Drugwash replied to Drugwash's topic in Windows 9x Member Projects
I only tested it without KernelEx on the test machine, then opened it in Dependency Walker to see missing functions. Then I tested it on main machine with KernelEx 4.5.2 installed, but no compatibility mode and it's thrown that PDH.DLL error. No further testing until loblo mentioned compatibility, at which point I ran it on my main machine and no error message popped up - only a brief DOS window that closed eight away and no running process in the background. While profiling it through Dependency Walker, I could briefly see the word 'error' in the DOS window that pops up. Exit code is 0xFF. Latest version working in Win9x appears to be 1.1 (1.1.7 sources available), which can be found on the Zabbix site, in the Old releases area. Actually, not even that one works in 98SE, either with default compatibility or Win2k compatibility. If it doesn't work, I don't need it. Period. -
KernelEx -- On building, debugging and related matters...
Drugwash replied to Drugwash's topic in Windows 9x Member Projects
That thing wouldn't work with 4.5.2 either. It requires PdhLookupPerfNameByIndexA and PdhOpenQueryA in PDH.DLL, which are not available in the SP3 version. With KernelEx 4.5.2, those functions appear available, but it refuses to load PDH.DLL through DLL_PROCESS_ATTACH. Furthermore, in KEx 4.5.2, I notice PSAPI.DLL can't properly recognize kernelex.dll in its rightful location (C:\Windows\KernelEx) - as shown by Dependency Walker - but it does when kernelex.dll is copied to C:\Windows\System. -
Create a bootable CD/DVD from a set of floppies
Drugwash replied to Multibooter's topic in Windows 9x/ME
Please pardon my intrusion: I will NEVER EVER use ANY kind of installer, no matter where it comes from and no matter who guarantees for it. I do not trust anybody unless it's open-source. I used to be a free member at Driver-Guide, years ago. Ever since they changed their ways, I dropped that service forever. When M$ changed their privacy policy, I removed my Hotmail/Live account. When Google changed their privacy policy, I stopped using ALL Google services. I don't trust Adobe either and since they don't provide clear links to full Flash kits, I disabled auto-update for that thing too. Simple as that! <rant> I mean, where the [...] are those good ol' links that anyone could get their software from, by a simple click? Nowadays it's all about installers that know better than the humans, everything is obfuscated, you can't get a full install kit for anything if you need it on another machine without Internet connection - what has become of this world?! Are we all criminals or are we all that stupid that we can't be trusted with installing a simple thing on our OWN computers? </rant> -
Well, there's a lot of variables in this equation: hardware capabilities, driver versions, additional software, settings and then it boils down to browsing habits. It's bound to work for some and fail for others. That's why we need viable alternatives. Anyway, let's not go off-topic here.
-
It's kind of you to try and help and I thank you for that. Over the years, I've attempted to use Opera in its different versions. None of them was able to perform what I needed, there were bugs, missing features, illogical behavior and so on. I'm sworn not to touch Opera again. If it were the last available option, I'd rather cancel my Internet subscription and I mean it. There are a few open-source projects at SourceForge. Many of them are .NET-based but some are C/C++ or Qt. Of all I've tried, three might be usable, but need fixes and improvements: - dplus - Internet Surfboard - Weltweitimnetz Browser Unfortunately, my main system has a bad habit of breaking the video driver short after launching these new browsers (and also k-meleon, SeaMonkey and old Firefox 3.5), so I can't say which is best. Maybe someone else could try them out and share their experience. KernelEx may be needed - my system has a lot of updates (AutoPatcher, Revolutions Pack, KernelEx, manually updated system files) and can run all of them but that video issue (crash in NVDISP.DRV) prevents me from a thorough testing.
-
Unfortunately, Firefox has become a huge resource hog. I have to use it everyday under XP and at some point it takes about 1GB of memory + HDD space, goes slower and slower until it can't be operated anymore and needs restarted. Of course, this may also be the fault of certain extensions I have active, but if it wasn't for those, I wouldn't be browsing the Internet nowadays. I have a fixed monthly download quota and can't afford to waste it with useless advertising, Flash and whatnot. Guys, I'm afraid we need a new browser, designed from scratch for Win9x, that can use HTML5 but can also be able to reject all that advertising that's cluttering the pages. But I already know the answer to that: "keep dreaming..."
-
KernelEx -- On building, debugging and related matters...
Drugwash replied to Drugwash's topic in Windows 9x Member Projects
@ Leyok: Thank you, that was all I needed to know. None whatsoever - GOM works fine on my main 98SE machine with 4.5.2 and worked with previous versions too. In MemPanel, I use two macro functions provided by AutoHotkey: MouseGetPos and ControlGetPos, then calculate relative position. MouseGetPos, mx, my, winid, ctrl, 2 ControlGetPos, cX, cY,,, Static2, ahk_id %hSet% skin := 1+(mx-cX)//8 The skin variable above should get a value between 1 and 32 (Static2's width is 256px). MouseGetPos is set to retrieve coordinates relative to the active window, not the screen - maybe that's where the bug lies (the directive is set to CoordMode, Mouse, Relative). You can look through the AHK sources and see what API it uses for the two functions. I can provide the source code for MemPanel too, if you need it. Your reply about uncommenting the #define made it clear already. I had wrongly assumed the WRITETOLOG was enabled by default in GitHub. I deploy every new GitHub pull in a new folder, so it wouldn't interfere with old files/settings. Everything is being built from scratch and if I rebuild, I always clean the project first.I'll build with WRITETOLOG enabled, see where it stumbles. Might take a while, I'm not feeling well these days. @ PROBLEMCHYLD: Please provide the names (and links, if possible) to those applications that would not work with PDH.DLL, MSIMG32.DLL and PSAPI.DLL from KernelEx, so I could test them myself. Currently I can build KernelEx but for some reason, one of its libraries (kexbases.dll) hangs my test system. I can replace it with Leyok's version, for testing purposes though. EDIT: @ Leyok I've enabled logging in my build. Apparently, OpenWindowStationA_new() fails in my kexbases.dll, then it gets stuck loading KEXBASEN again (as compared to a working log posted somewhere above): Please note the code I built is the one before you disabled the Unicode API. -
KernelEx -- On building, debugging and related matters...
Drugwash replied to Drugwash's topic in Windows 9x Member Projects
Positive: project files are fixed, batch compiles now at first attempt without any changes whatsoever. Negative: own builds (under 98SE and XP-SP3) still hang upon reboot, with no log created. I've nailed this down to kexbases.dll. As soon as I replace mine with yours from latest package, system boots normally, but still no log file. Further negatives: - GOM Player's About window still loses mouse control and needs to be closed by keyboard - my own toy MemPanel calculates mouse cursor position badly in Options - as soon as the skin ribbon is clicked, a much larger value is being sent to the program, causing the skin to dissapear. Upon exit, the settings ini file shows an out of range value (accepted are 1 to 32). I believe the two are related. Upon uninstalling KernelEx, everything behaves correctly. Questions: - why doesn't the GitHub branch create any log? Is there any flag missing in the Debug project? - why doesn't kexbases work, as long as it compiles without error on two different machines/operating systems? -
KernelEx -- On building, debugging and related matters...
Drugwash replied to Drugwash's topic in Windows 9x Member Projects
As mentioned above, none of my own compiled Debug versions would create a log. Following are 3 subsequent pieces of a single log created by your version posted above. First chunk is from boot to moments before opening GOM Player 2.1.43.5119 (Total Commander was launched during this time). Second chunk is from GOM startup to GOM forced kill (since it also got hung after an Alt+Tab). Third chunk is after killing GOM process. The same 'invalid directory error' happens to me all the time with the original project files, reason why I'm using the modified ones that do not move any files but just pick the right ones (hopefully) from their current locations. There is no space in my project path (D:\free\KernelEx-master8) -
KernelEx -- On building, debugging and related matters...
Drugwash replied to Drugwash's topic in Windows 9x Member Projects
@PROBLEMCHYLD: netapi32.dll is a standard Win9x library, should be found on the installation CD (WIN98_38.CAB) and should get installed with the network card or something. I got it installed on the test machine without touching additional files or anything - just installing drivers, configuring local network and installing a slightly older version of uSP3. @Leyok: no matter what I do, I can't get a working version compiled from the Github source. All files do compile fine (using my slightly modified project files) but upon reboot there's the usual machine hang and nothing more but a mouse cursor on a desktop picture with no Explorer or desktop icons. I've built the same project under 98SE and XP-SP3, using VC6 and 98DDK; only difference is 98SE has NSIS 2.46 while XP has NSIS 2.44. None of my versions would create the debug log. The package you posted above does install succesfully but it exhibits some strange bahavior: couldn't use the mouse buttons anymore in GOM Player after displaying the About window; only through keyboard was I able to close that dialog. Neither the 98SE nor the XP builds match the file sizes from your package. There must be some differences here - are you by chance using the Win2000 DDK? I just can't get to the bottom of this and it's driving me crazy. Here's both outputs from 98SE and XP-SP3 (separate files and NSIS installers): 98SE XP-SP3 -
Using "highest" settings may not always work for everyone. On occasions, I had to switch to Safe Mode only to lower display resolution because in Normal mode it was too high for my monitor(s) which instantly dropped to protected mode. Some people may still have old/defective monitors that cannot work at 1024x768 or higher, or they may just need lower resolution, higher DPI or other settings for some other reasons. Therefore, ideally, at boot time there would be a short test to enumerate available VESA modes, then a test on the currently connected monitor for matched modes and then let the user choose the one they want (or just set the highest available one but allow the user to change it dynamically). This might be a little hard for me to do, as I forgot all the ASM I've worked with when messing with the old WLL.COM. But we'll see...
-
Thank you very much, I've installed it and will test as soon as HTML comes my way. Personally I'm reasonably pleased with Komposer, but it's always good to be aware of alternatives. More and more often I wonder if search engines really perform any search at all or they just suggest things based on whoever pays more for promoting their own stuff. Well, that's more of a rhetorical question.