OT: Howto debug DOS programs

View: New views
9 Messages — Rating Filter:   Alert me  

OT: Howto debug DOS programs

by the bcpino :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I've been using FreeDOS for a while and it works great.

I'd like to write an Intel HDA driver for SCI games (Sierra quests). Ok, they work great under Dosbox, but I still prefer using plain DOS.

I consider myself a good programmer, but I've never made any low-level programming or debug DOS programs.

Is there any book or information on the net I can start with?

Thanks,

Gino





------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Freedos-user mailing list
Freedos-user@...
https://lists.sourceforge.net/lists/listinfo/freedos-user

Re: OT: Howto debug DOS programs

by Florian Xaver-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

maybe the music player MPXPLAY <http://mpxplay.cjb.net/> could be a
good resource.

Bye
 Flo

2009/8/18 the bcpino <bcpino@...>:

> I've been using FreeDOS for a while and it works great.
>
> I'd like to write an Intel HDA driver for SCI games (Sierra quests). Ok,
> they work great under Dosbox, but I still prefer using plain DOS.
>
> I consider myself a good programmer, but I've never made any low-level
> programming or debug DOS programs.
>
> Is there any book or information on the net I can start with?
>
> Thanks,
>
> Gino
>
>
>
>
>
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
> trial. Simplify your report design, integration and deployment - and focus
> on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> Freedos-user mailing list
> Freedos-user@...
> https://lists.sourceforge.net/lists/listinfo/freedos-user
>
>



--
Florian Xaver
<http://www.drdos.org> <http://www.flox.at.tf>

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Freedos-user mailing list
Freedos-user@...
https://lists.sourceforge.net/lists/listinfo/freedos-user

Re: OT: Howto debug DOS programs

by Santiago Almenara-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

It's strange. I've got 2 PC's with Intel HDA and MPXPLAY only works with 1.

A desktop with D915GEV mainboard: It works!
A laptop Dell Inspiron 6400: It doesn't work!

I think the first one is Intel ICH6 and the second one is ICH7 but I am not sure what it means.

What could be happen?

Santiago

On Tue, Aug 18, 2009 at 2:28 AM, Florian Xaver <flox@...> wrote:
Hi,

maybe the music player MPXPLAY <http://mpxplay.cjb.net/> could be a
good resource.

Bye
 Flo

2009/8/18 the bcpino <bcpino@...>:
> I've been using FreeDOS for a while and it works great.
>
> I'd like to write an Intel HDA driver for SCI games (Sierra quests). Ok,
> they work great under Dosbox, but I still prefer using plain DOS.
>
> I consider myself a good programmer, but I've never made any low-level
> programming or debug DOS programs.
>
> Is there any book or information on the net I can start with?
>
> Thanks,
>
> Gino
>
>
>
>
>
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
> trial. Simplify your report design, integration and deployment - and focus
> on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> Freedos-user mailing list
> Freedos-user@...
> https://lists.sourceforge.net/lists/listinfo/freedos-user
>
>



--
Florian Xaver
<http://www.drdos.org> <http://www.flox.at.tf>

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Freedos-user mailing list
Freedos-user@...
https://lists.sourceforge.net/lists/listinfo/freedos-user


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Freedos-user mailing list
Freedos-user@...
https://lists.sourceforge.net/lists/listinfo/freedos-user

Re: OT: Howto debug DOS programs

by Eric Auer-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Hi Gino!

> I've been using FreeDOS for a while and it works great.

Nice :-)

> I'd like to write an Intel HDA driver for SCI games (Sierra quests).
> Ok, they work great under Dosbox, but I still prefer using plain DOS.

You could at least use dosemu :-p Much faster :-)

> I consider myself a good programmer, but I've never made any low-level
> programming or debug DOS programs.

Which programming languages do you write? At least part of your
driver can be written in C, but you might need Assembly language
as well, in particular if you want to take the tough route of
creating universal virtual hardware instead of a Sierra driver.

For debugging, I recommend using DOSEMU or, for even more lowlevel
stuff, BOCHS, but you can also try 386SWAT in pure DOS, maybe :-)

> Is there any book or information on the net I can start with?

Creating virtual hardware can be very hard, but if I understand
you correctly, Sierra games already have some sort of interface
for loading custom sound drivers? Then you can split your task
in two parts: Write something which makes any sound on HDA and
can be run from the command line. And write something which does
anything with the sound sent by a Sierra game and which can be
loaded as a Sierra driver. For example the latter can blink some
pixels on your screen or can use the PC speaker (port 61h) - any
noticeable activity will be enough to show you that your Sierra
driver does properly receive sound data from your game... The
command line thing could for example be based on MPXPLAY sources
and can play any simple noise you want - a sine, maybe with some
frequency sweep over time, will do perfectly :-).

Eric



PS: You can have a look at the sources of the ancient VSB
virtual sound blaster to see how complicated it is to create
some virtual hardware for SB1/SB2. Or look at the sources of
DOSEMU to see how a proper virtual SB16 can be implemented in
C. Of course DOSEMU uses Linux to send sound to your hardware
and to trap I/O access of DOS, so it only shows the "middle"
part of what a virtual soundblaster for DOS will need...



------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Freedos-user mailing list
Freedos-user@...
https://lists.sourceforge.net/lists/listinfo/freedos-user

Re: OT: Howto debug DOS programs

by Eric Auer-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Hi!

> It's strange. I've got 2 PC's with Intel HDA and MPXPLAY only works with 1.
>
> A desktop with D915GEV mainboard: It works!
> A laptop Dell Inspiron 6400: It doesn't work!
>
> I think the first one is Intel ICH6 and the second one is ICH7 but I am not
> sure what it means.

>> maybe the music player MPXPLAY <http://mpxplay.cjb.net/> could be a
>> good resource.

Maybe both chipsets use different variants of HDA? I think
for example for AC97, basic concepts are similar for the
different chipsets but for example mixer registers tend to
be at different addresses... You can also use PCISLEEP to
get an overview of your PCI / AGP / PCIe / mainboard chips
and I assume you can push MPXPLAY to try driver X even if
the PCI ID of your chip suggests driver Y or if MPXPLAY is
not informed about which driver to use for your chip? :-)

Eric

PS: Please consider also contacting some MPXPLAY forum :-)



------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Freedos-user mailing list
Freedos-user@...
https://lists.sourceforge.net/lists/listinfo/freedos-user

Re: OT: Howto debug DOS programs

by the bcpino :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Eric!

Thanks for your answer!
 
> I'd like to write an Intel HDA driver for SCI games (Sierra quests).
> Ok, they work great under Dosbox, but I still prefer using plain DOS.

You could at least use dosemu :-p Much faster :-)

I'll try it, but I still want plain DOS.
 

> I consider myself a good programmer, but I've never made any low-level
> programming or debug DOS programs.

Which programming languages do you write? At least part of your
driver can be written in C, but you might need Assembly language
as well, in particular if you want to take the tough route of
creating universal virtual hardware instead of a Sierra driver.

For debugging, I recommend using DOSEMU or, for even more lowlevel
stuff, BOCHS, but you can also try 386SWAT in pure DOS, maybe :-)


My program languages are Basic, C, C++ and Java. I know Basic and Java won't help and I am sure C & C++ somehow will. I installed Dosbox with heavy debug information but since I don't know any assembly language I couldn't do much.
 

> Is there any book or information on the net I can start with?

Creating virtual hardware can be very hard, but if I understand
you correctly, Sierra games already have some sort of interface
for loading custom sound drivers?

Almost all Sierra quest, from the 90's, uses SCI (Sierra's Creative Interpreter). SCI game has a configuration file that specifies what drivers files to use for audio, video, mouse, etc. Most drivers aren't larger than 10,000 bytes.
 
Then you can split your task
in two parts: Write something which makes any sound on HDA and
can be run from the command line. And write something which does
anything with the sound sent by a Sierra game and which can be
loaded as a Sierra driver. For example the latter can blink some
pixels on your screen or can use the PC speaker (port 61h) - any
noticeable activity will be enough to show you that your Sierra
driver does properly receive sound data from your game...

Excellent idea!
 

PS: You can have a look at the sources of the ancient VSB
virtual sound blaster to see how complicated it is to create
some virtual hardware for SB1/SB2. Or look at the sources of
DOSEMU to see how a proper virtual SB16 can be implemented in
C. Of course DOSEMU uses Linux to send sound to your hardware
and to trap I/O access of DOS, so it only shows the "middle"
part of what a virtual soundblaster for DOS will need...


Where can I find VSB sources? I've found in Google the phrase "virtual sound blaster" but I can't find neither the binaries nor the source. I find a couple of sites with the phrase, not the files to download, though.


Santiago


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Freedos-user mailing list
Freedos-user@...
https://lists.sourceforge.net/lists/listinfo/freedos-user

Re: OT: Howto debug DOS programs

by pcdos2k :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

--- On Sat, 8/22/09, the bcpino <bcpino@...> wrote:
>
> Where can I find VSB sources? I've found in Google the
> phrase "virtual sound blaster" but I can't
> find neither the binaries nor the source. I find a couple of
> sites with the phrase, not the files to download, though.
>

virtual sound blaster v2.02 sources:
http://cs.ozerki.net/zap/pub/vsb/



     

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Freedos-user mailing list
Freedos-user@...
https://lists.sourceforge.net/lists/listinfo/freedos-user

Re: OT: Howto debug DOS programs

by dos386 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

bcpino@... wrote:

> I'd like to write an Intel HDA driver for SCI games (Sierra quests).

Great idea :-) Do they use some separate (ISA SB 16) driver file ???
Real mode or DPMI ?

> I consider myself a good programmer, but I've never made any
> low-level programming or debug DOS programs.

You need PCI programming at first. About debugging, use FreeDOS DEBUG (RM),
deb32 (DPMI), BOCHS (lowest level but it doesn't emulate HDA AFAIK :-( )

> there any book or information on the net I can start with?

PCI and sound programming ??? MPXPLAY source, "PCI" source, ...

almenara@... wrote:

> It's strange. I've got 2 PC's with Intel HDA and MPXPLAY only works with 1.
> A desktop with D915GEV mainboard: It works!
> A laptop Dell Inspiron 6400: It doesn't work!

Good, but please report this to MPXPLAY author ;-) Also, use the "PCI"
tool and report the results.

> I think the first one is Intel ICH6 and the second one is ICH7 but I am not sure what it means.

HDA starts with ICH8 or not ???

Eric wrote:

> You could at least use dosemu :-p Much faster

Faster what ??? Booting ???

> as well, in particular if you want to take the tough route of
> creating universal virtual hardware instead of a Sierra driver.

Why not an universal driver for HX ??? Or a Sierra driver, if they had
one for ISA cards :-)

> For debugging, I recommend using DOSEMU or

UI1DEB (works in DOS)

> Creating virtual hardware can be very hard, but if I understand
> you correctly, Sierra games already have some sort of interface
> for loading custom sound drivers?

Then forget the "virtual" nonsense ...

> Then you can split your task in two parts:
> Write something which makes any sound on HDA and
> can be run from the command line. And write something which does
> anything with the sound sent by a Sierra game and which can be
> loaded as a Sierra driver. For example the latter can blink some
> pixels on your screen or can use the PC speaker (port 61h) - any
> noticeable activity will be enough to show you that your Sierra
> driver does properly receive sound data from your game... The
> command line thing could for example be based on MPXPLAY sources
> and can play any simple noise you want - a sine, maybe with some
> frequency sweep over time, will do perfectly

:-)



--
~~~ wow ~~~

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Freedos-user mailing list
Freedos-user@...
https://lists.sourceforge.net/lists/listinfo/freedos-user

Re: OT: Howto debug DOS programs

by dos386 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Of course it might be a good idea or necessary to disassemble the or
some existing Sierra ISA driver (also "PC" speaker ? Covox ?) to see
how it communicates with the main game file, when you one day have
something able to "talk" to your HDA chip.





--
~~~ wow ~~~

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Freedos-user mailing list
Freedos-user@...
https://lists.sourceforge.net/lists/listinfo/freedos-user