Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build system usage is really unclear #55

Open
zennetizen opened this issue Aug 1, 2021 · 0 comments
Open

Build system usage is really unclear #55

zennetizen opened this issue Aug 1, 2021 · 0 comments

Comments

@zennetizen
Copy link

zennetizen commented Aug 1, 2021

Apologies in advance, since this issue isn't really that on point and covers two areas but I've spent an entire weekend messing with this and not made a lot of progress.

I'm looking at Windows 3.1 VxD development out of interest, so I can eventually go on to write a better, open source display driver for VirtualBox and QEMU that can support arbitrary resolutions, but I'm having a real hard time getting the build system working. I've seen demos of Windows 3.1 running at arbitrary resolutions so I believe this should be possible to implement.

When I tried to build the project, after examining the linux-ow.sh script and making sure I had everything it expected (watcom in /usr/watcom, etc), running ./buildall.sh in the root of the project gave me the following output:

$ ./buildall.sh 
'buildall.sh' -> 'asminc/buildall.sh'
'buildall.sh' -> 'bootsect/buildall.sh'
'buildall.sh' -> 'i13geom/buildall.sh'
Error(F38): (dos86t/boot1.img) does not exist and cannot be made from existing files
Error(E02): Make execution terminated

I spent a lot of time trying to figure out how the build system is supposed to work and didn't make much headway, since it is overly confusing, so I decided to instead hyperfocus on just the parts I was interested in, in the hope that I would understand what's going wrong with the build system. I've spent the weekend cannibalising the ps2mouse driver to try to get it to build. I've created a makefile based on the original makefile to bypass the build system, and so far it's somewhat building. I eventually landed on this error when building ps2mouse.c:

ps2mouse.c(219): Error! E1121: Procedure 'bios_get_config' has invalid return register in #pragma

The openwatcom documentation alludes to the return value being incompatible with the declared return value, but the function didn't seem necessary to the code so I just commented it out.

After that, the C side of the code seems to compile fine, though I now am stuck with the following errors when linking:

Error! E2028: __GETDS is an undefined reference
Error! E2052: file dllentry.obj(dllentry.asm): relocation at 0001:0001 not in the same segment
file ps2mouse.obj(/path/to/doslib/windrv/ps2mouse/win3x/ps2mouse.c): undefined symbol __GETDS
file inthndlr.obj(/path/to/doslib/windrv/ps2mouse/win3x/inthndlr.c): undefined symbol __GETDS

So I guess I have two questions:

  1. Is the ps2mouse driver actually buildable or is it a WIP
  2. Am I missing something in regards to getting the normal build system to work. The only documentation I've found on it is to just run buildall.sh, and there has to be something I'm missing because other people don't seem to be having any issues getting it to build.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant