Page 1 of 3

windows 3.1 fun

Posted: Sat May 30, 2009 5:27 pm
by VolTeK
i have just ran win3.1 on my vm, i would like to know if there is a way to crash windows 3.1 using assembly?

Re: windows 3.1 fun

Posted: Sat May 30, 2009 6:18 pm
by NickJohnson
Well, it's really just MS-DOS under the hood - I think you can just make an infinite loop and the system will freeze - it's single tasking. You have nearly full memory access from "usermode"; I think you can think of something. :lol:

Re: windows 3.1 fun

Posted: Sat May 30, 2009 8:03 pm
by VolTeK
i am thinking about coruppting some memory, i tried int viruses, but its just boring, all it does is freeze, the best i have done yet is get the general protection fault untill i get the emm386 error.

Re: windows 3.1 fun

Posted: Sat May 30, 2009 9:19 pm
by dude101
Lol, do you have access to the entire address space in windows 3.1?


If you write a C program that dereferences a NULL pointer will you actually read what is at 0x0000000

I work on embedded systems at work. Once I accidentally dereferenced a NULL pointer and it actually read the data at that location.

Re: windows 3.1 fun

Posted: Sat May 30, 2009 9:39 pm
by NickJohnson
Yeah, Windows 3.1 still runs in real mode, because it is really just MS-DOS with a new shell, so you have access to everything. It's not like you can make it crash spectacularly, because it kind of doesn't have much substance to it - crashing MS-DOS is too simple to be interesting.

Re: windows 3.1 fun

Posted: Sat May 30, 2009 10:40 pm
by dude101
NickJohnson wrote:Yeah, Windows 3.1 still runs in real mode, because it is really just MS-DOS with a new shell, so you have access to everything. It's not like you can make it crash spectacularly, because it kind of doesn't have much substance to it - crashing MS-DOS is too simple to be interesting.
How does it access 16 megs of RAM if it runs in real mode (genuine question, sorry if this is a n00b question)? The thing about DOS is that once an application runs it as full control of the whole PC. MS used this to let windows run from DOS but that does not make it "a DOS shell"

Re: windows 3.1 fun

Posted: Sat May 30, 2009 11:18 pm
by Troy Martin
dude101 wrote:
NickJohnson wrote:Yeah, Windows 3.1 still runs in real mode, because it is really just MS-DOS with a new shell, so you have access to everything. It's not like you can make it crash spectacularly, because it kind of doesn't have much substance to it - crashing MS-DOS is too simple to be interesting.
How does it access 16 megs of RAM if it runs in real mode (genuine question, sorry if this is a n00b question)? The thing about DOS is that once an application runs it as full control of the whole PC. MS used this to let windows run from DOS but that does not make it "a DOS shell"
The 286 has a 24-bit address space that can be used from 16-bit pmode, I think.

Re: windows 3.1 fun

Posted: Sat May 30, 2009 11:24 pm
by dude101
I put win3.1 on a VM too. Does anyone know where I can find a C compiler that can make win16 exes?

Re: windows 3.1 fun

Posted: Sun May 31, 2009 1:34 am
by ru2aqare
dude101 wrote:I put win3.1 on a VM too. Does anyone know where I can find a C compiler that can make win16 exes?
Old Borland compilers may be able to do that, or maybe even Watcom.

Re: windows 3.1 fun

Posted: Sun May 31, 2009 1:52 am
by Wilkie
dude101 wrote:I put win3.1 on a VM too. Does anyone know where I can find a C compiler that can make win16 exes?
As ru2aqare notes, Borland C++ 5.02 and earlier can compile win16 targets. Version 5.5 is free, and easily found, but it is not what you need... 5.02 is a bit difficult, and perhaps illegal (sigh) so you should (sigh) ask first.

There is always Visual Basic 3! (Which really brings me back... mmmmm p-code)

Re: windows 3.1 fun

Posted: Sun May 31, 2009 4:12 am
by ru2aqare
Wilkie wrote: As ru2aqare notes, Borland C++ 5.02 and earlier can compile win16 targets. Version 5.5 is free, and easily found, but it is not what you need... 5.02 is a bit difficult, and perhaps illegal (sigh) so you should (sigh) ask first.
I actually thought about Turbo C 3.x or something. We still have those ancient compilers in the computer labs at the university, so I figured they must be able to compile for win16 target as well, but I'm not sure, we only did real mode programming when we learnt C.

Re: windows 3.1 fun

Posted: Sun May 31, 2009 10:03 am
by Troy Martin
Wilkie wrote:There is always Visual Basic 3! (Which really brings me back... mmmmm p-code)
Ye gods, I think I have a copy of that on my desktop :)

Re: windows 3.1 fun

Posted: Sun May 31, 2009 12:27 pm
by Coty
VB 3.0 don't work on vista :(

Re: windows 3.1 fun

Posted: Sun May 31, 2009 8:10 pm
by earlz
ROFL somewhere in my pirating days I had VB 1.0... ONE POINT OH! and I had the DOS version! You know how neat it is to have a VB designed so that you can make ASCII art behave like a real GUI!? It's amazing.. lol.. but pointless and slow...

Re: windows 3.1 fun

Posted: Sun Jun 07, 2009 11:50 am
by Love4Boobies
You can't write an infinite loop to break it and Win 3.1 isn't monotasking. To some extent, DOS isn't either (TSRs, anyone?). IIRC, Windows 3.1 can also be ran in the infamous 16-bit protected mode for 80286+ CPUs, not just in real mode. If you want to crash it, trash data.