MISS034@ECNCDC.BITNET (Mark Morrell) (12/09/89)
I wrote a letter a little while ago concerning an interface into Btrieve
using TopSpeed Modula-2 indicating that I had some problems with it. The
problems stemmed from my translation of the Logitech Modula-2 to TopSpeed.
Since I have only worked with TopSpeed, I misinterpreted part of the
program. Boiled down, this is what I did, note that this is taken way
out of context, but this is the series of instructions that got me:
Original Logitech:
A := ADR( XDATA );
r.DX := A.Segment; (* This isn't entirely Logitech, but *)
r.DS := A.Offset; (* you get the drift . . . *)
Which I interpreted as:
A := ADR( XDATA );
r.DX := SYSTEM.Seg( A );
r.DS := SYSTEM.Ofs( A );
But really meant:
r.DX := SYSTEM.Seg( XDATA );
r.DS := SYSTEM.Ofs( XDATA );
In other words, I took the address of the address of a variable, rather
than taking the address of the variable. Thanks to the person who
helped me out. I forgot the node, but the name is Graham Wright; who
sent me working code, which I used to figure out what I was doing
wrong. If anyone needs a copy of this just drop me a line. Since
Graham Wright's interface uses calls to non-standard modules, I'll
send mine, which is functionally equivelant to his. Thanks again
for the help.
Mark Morrell MISS034 @ ECNCDC
Software Specialist
Student Residential Programs
Western Illinois University