Posts: 544
Threads: 27
Joined: Jan 2005
Quote:Hi MystickShadows & Ralph,
So, you both think that mouse ASM program is the culprit right? Did you compile it to test it properly?
Well, if that's the case that would be a great relief for me, I though for a second that DirectQB was the culprit!
Clay Dragon:
The two downloads I did had a compiled file already, they were krpged12.exe and krpged21.exe, respectfully. And, I had no "mouse ASM program" to tangle with.
As I reported previously, when I tried to run the exe files by double clicking, I received the error messge, ""The parameter is incorrect", the same for each one. So, for my XP HE, it did NOT run.
Ralph, using QuickBASIC 4.5 and Windows XP Home Edition and Service Pack 2, with HP LaserJet 4L printer.
Posts: 34
Threads: 5
Joined: May 2005
Quote:Ralph wrote:
As I reported previously, when I tried to run the exe files by double clicking, I received the error messge, ""The parameter is incorrect", the same for each one. So, for my XP HE, it did NOT run.
There seem to be a problem with Windows XP all right. Maybe I should consider telling Windows XP users to get that DOS box emulation program MystikShadows talk about in a previous post...
Posts: 525
Threads: 23
Joined: Oct 2004
Could be...chances are many XP users probably already have it installed already if they do serious DOS development :-). so it shouldn't affect many DOS users :-)
Posts: 1,439
Threads: 15
Joined: Apr 2003
The first two demos ran fine here; didn't run the mouse demo yet.
Ralph, are you sure your config.nt and autoexec.nt files are configured correctly? You shouldn't have to modify them, but some program might have changed them without asking. They are in %SYSTEMROOT%\System32.
Clay Dragon, you might also want to investigate VDMSound, which emulates a SoundBlaster (and many other useful things) on an NT-based OS, which allows most DOS programs to run fine, even with sound.
EDIT: okay, tried the mouse program and it locked up after a short (less than a couple seconds, I would say) amount of time working correctly.
Posts: 1,439
Threads: 15
Joined: Apr 2003
Here's a replacement for your mouse code that should work everywhere (at least if a mouse is present ): Code: '' from QB.BI
TYPE RegType
ax AS INTEGER
bx AS INTEGER
cx AS INTEGER
dx AS INTEGER
bp AS INTEGER
si AS INTEGER
di AS INTEGER
flags AS INTEGER
END TYPE
DECLARE SUB INTERRUPT (intnum AS INTEGER,inreg AS RegType,outreg AS RegType)
''
DECLARE SUB Delay (Time AS SINGLE)
DECLARE FUNCTION MouseButtons% ()
DECLARE FUNCTION MouseChoice% ()
DECLARE SUB MouseHide ()
DECLARE SUB MouseInit ()
DECLARE FUNCTION MouseSlct% (x AS INTEGER, y AS INTEGER, xchoice AS INTEGER, ychoice AS INTEGER, interval AS INTEGER)
DECLARE SUB MouseShow ()
DECLARE FUNCTION MousePX% ()
DECLARE FUNCTION MousePY% ()
DIM SHARED A(34) AS INTEGER
DIM SHARED mx%, my%
DIM SHARED regs AS RegType
SCREEN 13
MouseInit
MouseShow
DO
Choice = MouseSlct(0, 0, 16, 10, 20)
IF MouseButtons% = 1 THEN
END
EXIT DO
END IF
LOOP
SUB Delay (Time AS SINGLE)
Waiter = TIMER
DO
IF TIMER > Waiter + Time THEN EXIT DO
LOOP
END SUB
DEFINT A-Z
FUNCTION MouseButtons%
regs.ax = 3
CALL INTERRUPT(&H33, regs, regs)
MouseButtons% = regs.bx
END FUNCTION
FUNCTION MouseChoice%
mx% = (MousePX% / 2): my% = MousePY%
MouseChoice% = 1
END FUNCTION
SUB MouseHide
regs.ax = 2
CALL INTERRUPT(&H33, regs, regs)
END SUB
SUB MouseInit
regs.ax = 0
CALL INTERRUPT(&H33, regs, regs)
END SUB
FUNCTION MousePX%
regs.ax = 3
CALL INTERRUPT(&H33, regs, regs)
MousePX% = regs.cx
END FUNCTION
FUNCTION MousePY%
regs.ax = 3
CALL INTERRUPT(&H33, regs, regs)
MousePY% = regs.dx
END FUNCTION
SUB MouseReset
MouseInit
END SUB
SUB MouseShow
regs.ax = 1
CALL INTERRUPT(&H33, regs, regs)
END SUB
FUNCTION MouseSlct% (x AS INTEGER, y AS INTEGER, xchoice AS INTEGER, ychoice AS INTEGER, interval AS INTEGER)
Delay (.25)
MouseShow
DO
IF (MouseChoice% <> 0) THEN
IF (MouseButtons% = 1) THEN
IF (mx% > x AND my% > y) AND (mx% < x + xchoice * interval AND my% < y + ychoice * interval) THEN
MouseHide
MouseSlct% = INT((mx% - x) / interval) + INT((my% - y) / interval) * xchoice + 1
EXIT DO
END IF
ELSEIF (MouseButtons% = 2) THEN
MouseHide
MouseSlct% = 0
EXIT DO
END IF
END IF
LOOP
END FUNCTION
SUB Wait4Click
Delay (.25)
MouseShow
DO
IF (MouseChoice% <> 0) THEN
IF (MouseButtons% <> 0) THEN
MouseHide
EXIT DO
END IF
END IF
LOOP
END SUB
Posts: 961
Threads: 81
Joined: Apr 2005
I haven't tried any of them and will not. I have had no end of problems with anything DOS on this box with XP, pre or post SP2.
What I have discovered however, is that since DOS has no USB support, I cannot control anything. XP seems to not support VESA as well, thus fullscreen DOS tends to just hang, and sometimes lockup altogether.
If you are making things for DOS, just don't support XP. There are many of us still running Windows 98. I do on a second partition, but that would involve rebooting and reconnecting my dialup...
>anarky
Screwing with your reality since 1998.
Posts: 34
Threads: 5
Joined: May 2005
Thank you for that mouse code DrV. I should try it very soon...
Posts: 34
Threads: 5
Joined: May 2005
Hey DrV, that mouse code work fine, I shall now integer it in my fouth demo and give you some feedback later...
Quote:Anarky wrote:
If you are making things for DOS, just don't support XP. There are many of us still running Windows 98. I do on a second partition, but that would involve rebooting and reconnecting my dialup...
Windows XP has still the hability to run Windows 95 programs and 256 colors programs too. So I'm pretty sure there is a way to make my demos work for Windows XP. Why? do you ask. Because I'd like to think that my demos can be run with any windows versions. The many of us won't live with Windows 98 for ever anyway, right? :wink:
Posts: 544
Threads: 27
Joined: Jan 2005
DrV wrote:
Quote:Ralph, are you sure your config.nt and autoexec.nt files are configured correctly? You shouldn't have to modify them, but some program might have changed them without asking. They are in %SYSTEMROOT%\System32.
How dows one know if either the autoexec.nt or the config.nt file are configured "correctly"?
I did a SEARCH, and found:
c:\windows\I386\config.nt_ 2 KB 3/31/2003 7:00 AM
c:womdows\repair\config.nt 3 KB 3/31/2004 4:07PM
c:\windows\system32\autoexec.nt 3 KB 3/31/2004 4:07 PM
c:\windows\I386\autoexec.nt 1 KB 3/31/2003 7:00 AM
c:\windows\repair\autoexec.nt 2 KB 3/31/2003 7:00 AM
c:\windows\system\autoexec.nt 2 KB 3/31/2003 7:00 AM
c:\windows\system32\autoexec.nt 2 KB 3/31/2003 7:00 AM
Does the above shed any light? Should I do something else?
Ralph, using QuickBASIC 4.5 and Windows XP Home Edition and Service Pack 2, with HP LaserJet 4L printer.
Posts: 1,439
Threads: 15
Joined: Apr 2003
I'm not an expert on it, but as far as I know (and as I said before), you need to have them in %SYSTEMROOT%\System32. Go to a command prompt and type 'echo %SYSTEMROOT%' (without the quotes) (it is almost certainly C:\Windows\ in your case, but it wouldn't hurt to be sure.) The contents of these files is important; if they are corrupted, you probably won't be able to run any DOS programs.
For reference, here are the default contents of these files (Lines starting with REM can be ignored, so I did not include them here):
CONFIG.NT Code: dos=high, umb
device=%SystemRoot%\system32\himem.sys
files=40
AUTOEXEC.NT Code: @echo off
lh %SystemRoot%\system32\mscdexnt.exe
lh %SystemRoot%\system32\redir
lh %SystemRoot%\system32\dosx
SET BLASTER=A220 I5 D1 P330 T3
If your files look the same as these (plus some lines starting with REM), then this is not the problem.
|