Jump to content

CamTron

Member
  • Posts

    281
  • Joined

  • Donations

    0.00 USD 
  • Country

    United States

Everything posted by CamTron

  1. I finally got my driver to work in 256 color mode! However, it locks up the system when changing resolution or color depth. I'm also having issues with SoftICE not handling resolution changes correctly. Whenever my driver changes the screen resolution, SoftICE's output becomes garbled and unreadable.
  2. For some reason, I am unable to upload any images or other files when posting on this site. Attempting to do so gives me an error box that says: I've tried on multiple browsers (Firefox 85.0 and Chromium 87.0.4280.66) with the same result. Is this a known issue?
  3. I tried setting it to something other than 640x480x4bit, but I get the "There is a problem with your display settings. The adapter type is incorrect, or the current settings do not work with your hardware." message box, and it still always loads vga.drv. How does Windows determine whether to show that error? Is anyone familiar with SoftICE? According to the documentation, I believe the "int 3h" instruction should break into the debugger, but I'm doing that at the very beginning of my driver's Enable function and nothing happens, so I assume Windows isn't loading my driver for some reason. EDIT: It turns out I had to use the "SET I3HERE ON" command in order to make SoftICE break on "int 3h". My driver is actually loading and is being called, but errors because I haven't implemented the necessary code.
  4. To test things out, I copied the source for the FRAMEBUF example and compiled it. However, I can't seem to get Windows 98 to actually load my driver. It installs fine in Device Manager, but when I reboot and run the "mod" command in SoftICE, it shows that Windows is using vga.drv, and my vboxdisp.drv doesn't show up in the list of loaded modules. I checked in Device Manager, and it says "This device is working properly", and shows that my vboxdisp.drv is correctly installed, but it secretly isn't using it. Is there any way to find out what's going wrong? vboxdisp.zip
  5. On closer inspection, it seems that the .drv files are what the DDK refers to as minidrivers and appear to be 16-bit DLLs but with the .drv extension. I'm still not sure how the minidriver, being ring 3 code, is supposed to access the display hardware directly.
  6. I'm a bit confused on a few things. According to the documentation, From what I know, DLLs are always protected mode ring-3 and don't have direct access to ports and memory mapping IO, which is needed to set resolutions and draw things to the screen. If a minidriver is just a DLL, do I even need to write a VxD at all? I'd love to take a look at the source to the Bearwindows Universal VBE driver if it wasn't closed source to see how it was implemented. It apparently has a .vxd and a .drv file (I'm not entirely sure what. drv is).
  7. I'm currently planning to make a driver for the VirtualBox GPU, in order to make it support resizing the guest resolution. This is very simple hardware, and is based on the one used in Bochs, which is very similar to VESA, and the osdev wiki has some good documentation. What debugging tools are recommended for driver development? I'm currently playing around with SoftICE. Is there anything better? I've written a basic driver skeleton, and gotten to the point where my driver can be installed in Device Manager, though it causes the system to hang on startup.
  8. I figured it out. This article was pretty helpful https://www.drdobbs.com/windows/building-vxds-in-windows-95/184410047 Oddly enough, the program loading the vxd has to be in the same directory as the vxd, and when using CreateFile to open the vxd, the filename passed in has to be \\.\mydriver.vxd instead of the full path to it for some reason. I also find it interesting that most example drivers in the Windows 95 DDK are written in assembly with some of them partially in C. WDM and modern WDF drivers are almost always written in C.
  9. Oh cool. I'll take a look at the DDK in my free time. Is there any way to programmatically load and unload VxDs at runtime? For example, the popular hex editor HxD does this in order to have raw disk access on Windows 9x.
  10. I'm a fairly experienced C, C++, and Assembly programmer and want to experiment with diving into the inner workings of Windows 9x drivers. Is there any publicly available documentation specifically on the format of VxD files, API references, and toolchains for compiling and testing them?
  11. I eventually figured it out. It seems that (with the exception of std) those are names of DLL files, and Kexstubs.dll requires a matching Kexstubs.ini file, or else it won't work. What is the difference between kexbases.dll and kexbasen.dll?
  12. What does the contents line in core.ini mean? I have this in core.ini [BASE] contents=Kexstubs,std,kexbasen,kexbases Kstub824 desc=Base enhancements (api fixes + extensions) Are those supposed to be names of dlls, ini files, or something else? Also why should there be a newline before Kstub842? I'm trying to get Firefox 45 running, and I don't really understand what I'm doing with Kext. Ktree9 says <error code: 2> <not found> for Kexstubs. Is there supposed to be a Kexstubs.dll that I'm missing?
  13. Have you looked into Neocities? It is essentially a spiritual successor to Geocities and they apparently offer 1GB of free storage.
  14. The only motherboard I've had capacitor problems with was from a 2006 Dell Dimension E510 (not Windows 9x compatible). We used it as a daily driver until it failed 2016. I looked at the motherboard, and pretty much all of those cylinder capacitors were blown. I have Dell desktops from 1996 and 2001 (both compatible with Windows 98), and both still work and have good capacitors. The 2001 one got a lot of use. It was a daily driver from 2001 to 2008. I've had to replace a fan, power supply, and hard drive, but never capacitors.
  15. I haven't been on this forum in a few years. Very to sad to hear of Loew's passing. As a fellow reverse engineer, I really admire his work.
  16. Wow, it seems this OS is still being worked on in 2020. I need to try it out again. http://doscore.net/home.html
  17. Muy interesante! It seems complicated to set up, though. Is there a way to get direct links to the update .exe files from archive.org? I tried downloading some earlier this year, but the archived Microsoft website isn't very functional (missing some backend content), so I wasn't able to download them from the wayback machine.
  18. Ok, never mind. The build system is HORRENDOUSLY complex, with hundreds of thousands of lines of python, and autogenerates code in places. I'm not going to attempt building it with MinGW.
  19. The Linux and OS X builds are compiled with gcc, so I'd think the vast majority of the code except for the Windows-specific platform code should be compatible with it. The major roadblock is getting the build system to work with it. I'm currently trying to build Pale Moon with MinGW.
  20. Is it not possible to compile it with MinGW? I can compile C++14 programs with gcc and have them run on Windows 95.
  21. Back on the topic of browsers, has anyone tried running Wine Internet Explorer on Win9x? It uses the Gecko engine like Firefox, Pale Moon, and K-Meleon, and it's pretty lightweight. I'll try it when I get a chance.
  22. I got it to work! I dug deeper into PowerStrip's settings and found a feature that lets me add a custom resolution. I added the 1440x900, rebooted, and was able to select it in the display properties. I'm curious as to what PowerStrip did to the registry to add the resolution, because I tried everything I could think of. Is the fact that I'm using a TV relevant? As far as I know, it functions just like any ordinary LCD monitor, just that it also has TV inputs. My VGA cable does support EDID, if that's what you mean.
  23. Still no dice. sigh... I installed PowerStrip and generated a .inf file from my monitor and installed it. I've attached the file if anyone wants to look at it. Then I completely removed all ATI driver software from my computer (Well, except for the setup files at C:\ATI\SUPPORT\6-2_wme_dd_cp_30314 which also has the modified C9_30314.inf). After rebooting, I installed the ATI driver, but I still can't get 1440x900. The resolutions I have available are 640x480, 800x600, 848x480, 1024x768, 1152x864, 1280x768, 1280x960, 1280x1024. Just like before, when I set a resolution over 1024x768, it pans with a 1024x768 window. Where in the registry can I find what resolutions the monitor and graphics card support? @Goodmaneuver My computer shows that message if I hold a bunch of keys down while the BIOS is loading. It's always done that, and it's not really an issue, but I find the error amusing. ps_mon.inf
  24. Completely uninstalling and reinstalling the driver software added the registry keys, but I am STILL unable to choose 1440x900 as my screen resolution. I don't know what determines the list of resolutions that shows up in the display properties. Going to try hacking an .inf file and try to force it into 1440x900.
  25. By "Reinstall it", do you mean going into Device Manager, removing the device, and then installing it again with the modified .inf? I tried modifying that .inf file, and reinstalling it several times, but it still doesn't add those registry entries for the other resolutions. I'm not sure why. I could maybe create a .reg file to add them manually. What does HKR refer to in that file? I don't really know the structure of .inf files very well.
×
×
  • Create New...