diff options
author | Simon Howard | 2011-09-11 23:40:44 +0000 |
---|---|---|
committer | Simon Howard | 2011-09-11 23:40:44 +0000 |
commit | efd15d965dee947a04727bb62f4e2092cf28732f (patch) | |
tree | 730d99c1e88d5e3145e552ad69dec52d30026d01 /opl/opl_win32.c | |
parent | 4d17ab361e90a75dc6deefd37e6eb2ba0610b386 (diff) | |
parent | 11024d8214580d63ca7a9e70a121f5ff542a2fce (diff) | |
download | chocolate-doom-efd15d965dee947a04727bb62f4e2092cf28732f.tar.gz chocolate-doom-efd15d965dee947a04727bb62f4e2092cf28732f.tar.bz2 chocolate-doom-efd15d965dee947a04727bb62f4e2092cf28732f.zip |
Merge from raven-branch.
Subversion-branch: /branches/strife-branch
Subversion-revision: 2367
Diffstat (limited to 'opl/opl_win32.c')
-rw-r--r-- | opl/opl_win32.c | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/opl/opl_win32.c b/opl/opl_win32.c index 29df3643..277ce76c 100644 --- a/opl/opl_win32.c +++ b/opl/opl_win32.c @@ -72,8 +72,35 @@ static void OPL_Win32_PortWrite(opl_port_t port, unsigned int value) ); } -// TODO: MSVC version -// #elif defined(_MSC_VER) && defined(_M_IX6) ... +// haleyjd 20110417: MSVC version +#elif defined(_MSC_VER) && defined(_M_IX86) + +static unsigned int OPL_Win32_PortRead(opl_port_t port) +{ + unsigned char result; + opl_port_t dst_port = opl_port_base + port; + + __asm + { + mov edx, dword ptr [dst_port] + in al, dx + mov byte ptr [result], al + } + + return result; +} + +static void OPL_Win32_PortWrite(opl_port_t port, unsigned int value) +{ + opl_port_t dst_port = opl_port_base + port; + + __asm + { + mov edx, dword ptr [dst_port] + mov al, byte ptr [value] + out dx, al + } +} #else |