I need some help converting a header file to hhf. I don't know how to declare the function prototypes properly.
Thanks
#ifndef ADIO1600_H
#define ADIO1600_H
extern "C" __declspec(dllimport) unsigned short InPort(unsigned long Port);
extern "C" __declspec(dllimport) unsigned short InPortB(unsigned long Port);
extern "C" __declspec(dllimport) unsigned short OutPort(unsigned long Port, unsigned short Value);
extern "C" __declspec(dllimport) unsigned short OutPortB(unsigned long Port, unsigned char Value);
struct TPCI_COMMON_CONFIG
{
unsigned short VendorID;
unsigned short DeviceID;
unsigned short Command;
unsigned short Status;
unsigned char RevisionID;
unsigned char ProgIf;
unsigned char SubClass;
unsigned char BaseClass;
unsigned char CacheLineSize;
unsigned char LatencyTimer;
unsigned char HeaderType;
unsigned char BIST;
unsigned long BaseAddresses[6];
unsigned long Reserved1[2];
unsigned long RomBaseAddress;
unsigned long Reserved2[2];
unsigned char InterruptLine;
unsigned char InterruptPin;
unsigned char MinimumGrant;
unsigned char MaximumLatency;
};
#endif
Thanks
You can try this :). I can't guarantee that you'll have no problems but at least its a start. You may also need to change the external names for the functions depending on which C compiler the dll was coded with also.
#if( ! @defined( ADIO1600_H ))
?ADIO1600_H := true;
static
procedure InPort
(
Port : uns32
);
@cdecl;
returns( "ax" );
external( "_InPort@4" );
procedure InPortB
(
Port:uns32
);
@cdecl;
returns( "ax" );
external( "_InPortB@4" );
procedure OutPort
(
Port : uns32;
Value : uns16
);
@cdecl;
returns( "ax" );
external( "_OutPort@6" );
procedure OutPortB
(
Port : uns32;
Value : char
);
@cdecl;
returns( "ax" );
external( "_OutPortB@5" );
type TCPI_COMMON_CONFIG : record
VendorID : uns16;
DeviceID : uns16;
Command : uns16;
Status : uns16;
RevisionID : uns8;
ProgIf : uns8;
SubClass : uns8;
BaseClass : uns8;
CacheLineSize : uns8;
LatencyTimer : uns8;
HeaderType : uns8;
BIST : uns8;
BaseAddresses : uns32[6];
Reserved1 : uns32[2];
RomBaseAddress : uns32;
Reserved2 : uns32[2];
InterruptLine : uns8;
InterruptPin : uns8;
MinimumGrant : uns8;
MaximumLatency : uns8;
endrecord;
#endif
If you haven't done so yet, take a look at Chapter Three of "Windows Programming in Assembly Language" entitled "The C-Assembly Connection".
http://webster.cs.ucr.edu/Page_win32/WindowsAsmPgm/html/Ch03.html
This chapter contains a fair discussion of how to convert C constructs to HLA, specifically for the purpose of converting ".h" files to ".hhf" format.
Cheers,
Randy Hyde
http://webster.cs.ucr.edu/Page_win32/WindowsAsmPgm/html/Ch03.html
This chapter contains a fair discussion of how to convert C constructs to HLA, specifically for the purpose of converting ".h" files to ".hhf" format.
Cheers,
Randy Hyde
Thanks for the help guys. I don't have the board in my pc at home, but hopefully I can try it out on Monday.
Cheers.
Cheers.