Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
My demos in Windows XP...
#11
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.
Reply
#12
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...
Reply
#13
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 :-)
hen they say it can't be done, THAT's when they call me ;-).

[Image: kaffee.gif]
[Image: mystikshadows.png]

need hosting: http://www.jc-hosting.net
All about ASCII: http://www.ascii-world.com
Reply
#14
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.
Reply
#15
Here's a replacement for your mouse code that should work everywhere (at least if a mouse is present Smile ):
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
Reply
#16
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.
Reply
#17
Thank you for that mouse code DrV. I should try it very soon...
Reply
#18
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:
Reply
#19
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.
Reply
#20
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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)