Discussion:
Please Help - I'm In Over My Head
(too old to reply)
Wildman
2012-09-06 20:12:45 UTC
Permalink
Raw Message
I am trying to write a program using VB3 on WFW 3.11.
The program needs to call a couple of DOS interrupts
and one of the calls require that a read/write data
table be setup and the segment:offset address of the
table must be passed to the interrupt via es:bx.

Since VB3 can't handle this, I turned to PB/DLL 1.10
but I have not been able to get anything to work. I
tried creating the table using a UDT, a string and as
assembly data using labels. None of it worked. Either
the system froze or I got a GPF and then it crashed.
I think the problem I am having is getting the correct
segmented address of the table.

In summary what I am asking, is there a way to create
a read/write data table and get the correct "segmented"
address? Any suggestions would be appreciated.

BTW The other DOS interrupts that do not require a
data table work just fine.
Auric__
2012-09-07 05:04:03 UTC
Permalink
Raw Message
Post by Wildman
I am trying to write a program using VB3 on WFW 3.11.
The program needs to call a couple of DOS interrupts
and one of the calls require that a read/write data
table be setup and the segment:offset address of the
table must be passed to the interrupt via es:bx.
Since VB3 can't handle this, I turned to PB/DLL 1.10
but I have not been able to get anything to work. I
tried creating the table using a UDT, a string and as
assembly data using labels. None of it worked. Either
the system froze or I got a GPF and then it crashed.
I think the problem I am having is getting the correct
segmented address of the table.
In summary what I am asking, is there a way to create
a read/write data table and get the correct "segmented"
address? Any suggestions would be appreciated.
BTW The other DOS interrupts that do not require a
data table work just fine.
How about asm? Write a routine that does what you need, compile it into a
DLL, call the function from VB or PB.
--
I want to get a tattoo of myself on my entire body, only 2" taller.
-- Steven Wright
Wildman
2012-09-07 05:25:58 UTC
Permalink
Raw Message
<snip>
How about asm? Write a routine that does what you need, compile it into
a DLL, call the function from VB or PB.
I wish I could do in assembly. That would be much easier.
However, I don't have any experience creating dll's with
assembly or with anything else for that matter. I have
masm 6.1 but I haven't been able to figure out how to
create a 16bit dll with it. All the docs I can find only
talk about 32bit dll's. I'm not sure if 6.1 will even do
it. Also, I can't find any info on 16bit dll's in the
docs for nasm and tasm. Can you suggest something?
Auric__
2012-09-07 05:39:48 UTC
Permalink
Raw Message
Post by Wildman
Post by Auric__
How about asm? Write a routine that does what you need, compile it into
a DLL, call the function from VB or PB.
I wish I could do in assembly. That would be much easier.
However, I don't have any experience creating dll's with
assembly or with anything else for that matter. I have
masm 6.1 but I haven't been able to figure out how to
create a 16bit dll with it. All the docs I can find only
talk about 32bit dll's. I'm not sure if 6.1 will even do
it. Also, I can't find any info on 16bit dll's in the
docs for nasm and tasm. Can you suggest something?
Don't know anything about Win16 asm, sorry. It was just a thought.

Hmm... Tried doing the whole thing as inline asm in the PB program? Not just
the data, but the call too.

Failing that, perhaps pop over to an asm group and find out if anyone
remembers how to write DLLs.
--
No main() No Gain!
Auric__
2012-09-07 05:43:22 UTC
Permalink
Raw Message
Post by Wildman
Post by Auric__
How about asm? Write a routine that does what you need, compile it into
a DLL, call the function from VB or PB.
I wish I could do in assembly. That would be much easier.
However, I don't have any experience creating dll's with
assembly or with anything else for that matter. I have
masm 6.1 but I haven't been able to figure out how to
create a 16bit dll with it. All the docs I can find only
talk about 32bit dll's. I'm not sure if 6.1 will even do
it. Also, I can't find any info on 16bit dll's in the
docs for nasm and tasm. Can you suggest something?
Just found this:
http://www.website.masmforum.com/tutorials/dlltute/masmdll.htm

It's for masm32, but it may or may not also work for 16-bit masm.
--
The Bill of Rights isn't some legalistic fine print. It was written to make
our lives freer, more prosperous, and happier. By forsaking it, America has
become no better than any other country in the world.
-- Harry Browne
Wildman
2012-09-07 18:30:29 UTC
Permalink
Raw Message
<snip>
http://www.website.masmforum.com/tutorials/dlltute/masmdll.htm
It's for masm32, but it may or may not also work for 16-bit masm.
Yea, I found this page during my research and I tried it. I couldn't
get the syntax right for link. It don't accept the /subsystem or /dll
switches. Maybe one of the asm groups can shed some light, if there
are any old-timers left like me. :-)

I appreciate your efforts.

<Wildman>

Loading...