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