和製MESSでMSX1 その4

SC-3000のPSGはSN76489ANなのですが、MSX1はAY-3-8912です。I/Oマップはここら辺を参考にしつつ、PHC-25のPSGを移植したら、あっさりサウンドが鳴りました。かつジョイスティックも使えるようになった!

http://www31.atwiki.jp/tagoo/pages/16.html

ところで、MSX1ビルド方法ですが、以下からsource.zipをダウンロードして、以下のフォルダ構成になります。

http://homepage3.nifty.com/takeda-toshiya/common/index.html

+source ←和製MESSを解凍して、以下のファイルのみ差し替える
 msx1.vcproj
+src 
 +res 
  msx1.ico
  msx1.rc
 +vm
  vm.h
  i8255.cpp
  +msx1
   joystick.cpp
   keyboard.cpp
   memory.cpp
   msx1.cpp
   joystick.h
   keyboard.h
   memory.h
   msx1.h

msx1.vcproj

<?xml version="1.0" encoding="shift_jis"?>
<VisualStudioProject
	ProjectType="Visual C++"
	Version="9.00"
	Name="msx1"
	ProjectGUID="{26207C6A-4A3C-4BE2-A3D6-C8A2FF886A96}"
	TargetFrameworkVersion="131072"
	>
	<Platforms>
		<Platform
			Name="Win32"
		/>
	</Platforms>
	<ToolFiles>
	</ToolFiles>
	<Configurations>
		<Configuration
			Name="Debug|Win32"
			OutputDirectory=".\Debug"
			IntermediateDirectory=".\Debug"
			ConfigurationType="1"
			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
			UseOfMFC="0"
			ATLMinimizesCRunTimeLibraryUsage="false"
			CharacterSet="2"
			>
			<Tool
				Name="VCPreBuildEventTool"
			/>
			<Tool
				Name="VCCustomBuildTool"
			/>
			<Tool
				Name="VCXMLDataGeneratorTool"
			/>
			<Tool
				Name="VCWebServiceProxyGeneratorTool"
			/>
			<Tool
				Name="VCMIDLTool"
				PreprocessorDefinitions="_DEBUG"
				MkTypLibCompatible="true"
				SuppressStartupBanner="true"
				TargetEnvironment="1"
				TypeLibraryName=".\Debug/msx1.tlb"
				HeaderFileName=""
			/>
			<Tool
				Name="VCCLCompilerTool"
				Optimization="0"
				AdditionalIncludeDirectories="C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Include"
				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MSX1"
				MinimalRebuild="true"
				BasicRuntimeChecks="3"
				RuntimeLibrary="1"
				PrecompiledHeaderFile=".\Debug/msx1.pch"
				AssemblerListingLocation=".\Debug/"
				ObjectFile=".\Debug/"
				ProgramDataBaseFileName=".\Debug/"
				BrowseInformation="1"
				WarningLevel="3"
				SuppressStartupBanner="true"
				DebugInformationFormat="4"
			/>
			<Tool
				Name="VCManagedResourceCompilerTool"
			/>
			<Tool
				Name="VCResourceCompilerTool"
				PreprocessorDefinitions="_DEBUG"
				Culture="1041"
			/>
			<Tool
				Name="VCPreLinkEventTool"
			/>
			<Tool
				Name="VCLinkerTool"
				AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib dsound.lib imm32.lib vfw32.lib"
				OutputFile=".\Debug/msx1.exe"
				LinkIncremental="2"
				SuppressStartupBanner="true"
				AdditionalLibraryDirectories="C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86"
				GenerateDebugInformation="true"
				ProgramDatabaseFile=".\Debug/msx1.pdb"
				SubSystem="2"
				RandomizedBaseAddress="1"
				DataExecutionPrevention="0"
				TargetMachine="1"
			/>
			<Tool
				Name="VCALinkTool"
			/>
			<Tool
				Name="VCManifestTool"
			/>
			<Tool
				Name="VCXDCMakeTool"
			/>
			<Tool
				Name="VCBscMakeTool"
				SuppressStartupBanner="true"
				OutputFile=".\Debug/msx1.bsc"
			/>
			<Tool
				Name="VCFxCopTool"
			/>
			<Tool
				Name="VCAppVerifierTool"
			/>
			<Tool
				Name="VCPostBuildEventTool"
			/>
		</Configuration>
		<Configuration
			Name="Release|Win32"
			OutputDirectory=".\Release"
			IntermediateDirectory=".\Release"
			ConfigurationType="1"
			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
			UseOfMFC="0"
			ATLMinimizesCRunTimeLibraryUsage="false"
			CharacterSet="2"
			>
			<Tool
				Name="VCPreBuildEventTool"
			/>
			<Tool
				Name="VCCustomBuildTool"
			/>
			<Tool
				Name="VCXMLDataGeneratorTool"
			/>
			<Tool
				Name="VCWebServiceProxyGeneratorTool"
			/>
			<Tool
				Name="VCMIDLTool"
				PreprocessorDefinitions="NDEBUG"
				MkTypLibCompatible="true"
				SuppressStartupBanner="true"
				TargetEnvironment="1"
				TypeLibraryName=".\Release/msx1.tlb"
				HeaderFileName=""
			/>
			<Tool
				Name="VCCLCompilerTool"
				Optimization="2"
				InlineFunctionExpansion="2"
				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MSX1"
				StringPooling="true"
				RuntimeLibrary="0"
				EnableFunctionLevelLinking="true"
				PrecompiledHeaderFile=".\Release/msx1.pch"
				AssemblerListingLocation=".\Release/"
				ObjectFile=".\Release/"
				ProgramDataBaseFileName=".\Release/"
				BrowseInformation="1"
				WarningLevel="3"
				SuppressStartupBanner="true"
			/>
			<Tool
				Name="VCManagedResourceCompilerTool"
			/>
			<Tool
				Name="VCResourceCompilerTool"
				PreprocessorDefinitions="NDEBUG"
				Culture="1033"
			/>
			<Tool
				Name="VCPreLinkEventTool"
			/>
			<Tool
				Name="VCLinkerTool"
				AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib dsound.lib imm32.lib vfw32.lib"
				OutputFile=".\Release/msx1.exe"
				LinkIncremental="1"
				SuppressStartupBanner="true"
				ProgramDatabaseFile=".\Release/msx1.pdb"
				SubSystem="2"
				RandomizedBaseAddress="1"
				DataExecutionPrevention="0"
				TargetMachine="1"
			/>
			<Tool
				Name="VCALinkTool"
			/>
			<Tool
				Name="VCManifestTool"
			/>
			<Tool
				Name="VCXDCMakeTool"
			/>
			<Tool
				Name="VCBscMakeTool"
				SuppressStartupBanner="true"
				OutputFile=".\Release/msx1.bsc"
			/>
			<Tool
				Name="VCFxCopTool"
			/>
			<Tool
				Name="VCAppVerifierTool"
			/>
			<Tool
				Name="VCPostBuildEventTool"
			/>
		</Configuration>
	</Configurations>
	<References>
	</References>
	<Files>
		<Filter
			Name="Source Files"
			Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
			>
			<File
				RelativePath="src\common.cpp"
				>
				<FileConfiguration
					Name="Debug|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
				<FileConfiguration
					Name="Release|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
			</File>
			<File
				RelativePath="src\config.cpp"
				>
				<FileConfiguration
					Name="Debug|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
				<FileConfiguration
					Name="Release|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
			</File>
			<File
				RelativePath="src\fileio.cpp"
				>
				<FileConfiguration
					Name="Debug|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
				<FileConfiguration
					Name="Release|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
			</File>
			<File
				RelativePath="src\winmain.cpp"
				>
				<FileConfiguration
					Name="Debug|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
				<FileConfiguration
					Name="Release|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
			</File>
			<Filter
				Name="EMU Source Files"
				Filter="cpp"
				>
				<File
					RelativePath="src\emu.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\win32_input.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\win32_screen.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\win32_sound.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
			</Filter>
			<Filter
				Name="VM Common Source Files"
				Filter="cpp"
				>
				<File
					RelativePath="src\vm\datarec.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\disk.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\event.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\i8251.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\i8255.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\io.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\ym2203.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\tms9918a.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\upd765a.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\z80.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
			</Filter>
			<Filter
				Name="fmgen Source Files"
				Filter="cpp"
				>
				<File
					RelativePath="src\vm\fmgen\file.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\fmgen\fmgen.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\fmgen\fmtimer.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\fmgen\opna.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\fmgen\psg.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
			</Filter>
			<Filter
				Name="VM Driver Source Files"
				Filter="cpp"
				>
				<File
					RelativePath="src\vm\msx1\joystick.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\msx1\keyboard.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\msx1\memory.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="src\vm\msx1\msx1.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
			</Filter>
		</Filter>
		<Filter
			Name="Header Files"
			Filter="h;hpp;hxx;hm;inl"
			>
			<File
				RelativePath="src\common.h"
				>
			</File>
			<File
				RelativePath="src\config.h"
				>
			</File>
			<File
				RelativePath="src\fifo.h"
				>
			</File>
			<File
				RelativePath="src\fileio.h"
				>
			</File>
			<Filter
				Name="EMU Header Files"
				Filter="h"
				>
				<File
					RelativePath="src\emu.h"
					>
				</File>
			</Filter>
			<Filter
				Name="VM Common Header Files"
				Filter="h"
				>
				<File
					RelativePath="src\vm\datarec.h"
					>
				</File>
				<File
					RelativePath="src\vm\device.h"
					>
				</File>
				<File
					RelativePath="src\vm\disk.h"
					>
				</File>
				<File
					RelativePath="src\vm\event.h"
					>
				</File>
				<File
					RelativePath="src\vm\i8251.h"
					>
				</File>
				<File
					RelativePath="src\vm\i8255.h"
					>
				</File>
				<File
					RelativePath="src\vm\io.h"
					>
				</File>
				<File
					RelativePath="src\vm\ym2203.h"
					>
				</File>
				<File
					RelativePath="src\vm\tms9918a.h"
					>
				</File>
				<File
					RelativePath="src\vm\vm.h"
					>
				</File>
				<File
					RelativePath="src\vm\z80.h"
					>
				</File>
			</Filter>
			<Filter
				Name="fmgen Header Files"
				>
				<File
					RelativePath="src\vm\fmgen\diag.h"
					>
				</File>
				<File
					RelativePath="src\vm\fmgen\file.h"
					>
				</File>
				<File
					RelativePath="src\vm\fmgen\fmgen.h"
					>
				</File>
				<File
					RelativePath="src\vm\fmgen\fmgeninl.h"
					>
				</File>
				<File
					RelativePath="src\vm\fmgen\fmtimer.h"
					>
				</File>
				<File
					RelativePath="src\vm\fmgen\headers.h"
					>
				</File>
				<File
					RelativePath="src\vm\fmgen\misc.h"
					>
				</File>
				<File
					RelativePath="src\vm\fmgen\opna.h"
					>
				</File>
				<File
					RelativePath="src\vm\fmgen\psg.h"
					>
				</File>
				<File
					RelativePath="src\vm\fmgen\types.h"
					>
				</File>
			</Filter>
			<Filter
				Name="VM Driver Header Files"
				Filter="h"
				>
				<File
					RelativePath="src\vm\msx1\joystick.h"
					>
				</File>
				<File
					RelativePath="src\vm\msx1\keyboard.h"
					>
				</File>
				<File
					RelativePath="src\vm\msx1\memory.h"
					>
				</File>
				<File
					RelativePath="src\vm\msx1\msx1.h"
					>
				</File>
			</Filter>
		</Filter>
		<Filter
			Name="Resource Files"
			Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
			>
			<File
				RelativePath="src\res\resource.h"
				>
			</File>
			<File
				RelativePath="src\res\msx1.ico"
				>
			</File>
			<File
				RelativePath="src\res\msx1.rc"
				>
				<FileConfiguration
					Name="Debug|Win32"
					>
					<Tool
						Name="VCResourceCompilerTool"
						PreprocessorDefinitions=""
						AdditionalIncludeDirectories="src\res"
					/>
				</FileConfiguration>
				<FileConfiguration
					Name="Release|Win32"
					>
					<Tool
						Name="VCResourceCompilerTool"
						PreprocessorDefinitions=""
						AdditionalIncludeDirectories="src\res"
					/>
				</FileConfiguration>
			</File>
		</Filter>
	</Files>
	<Globals>
	</Globals>
</VisualStudioProject>

msx1.icoは以下から貰って来ました。

http://www3.plala.or.jp/tenpulako/

msx1.rc

//Microsoft Developer Studio generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// 日本語 resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
#ifdef _WIN32
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
#pragma code_page(932)
#endif //_WIN32

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE DISCARDABLE 
BEGIN
    "resource.h\0"
END

2 TEXTINCLUDE DISCARDABLE 
BEGIN
    "#include ""afxres.h""\r\n"
    "\0"
END

3 TEXTINCLUDE DISCARDABLE 
BEGIN
    "\r\n"
    "\0"
END

#endif    // APSTUDIO_INVOKED


/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//

IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE 
BEGIN
    VK_RETURN,      ID_ACCEL_SCREEN,        VIRTKEY, ALT, NOINVERT
END

#endif    // 日本語 resources
/////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////
// 英語 (アメリカ) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32

/////////////////////////////////////////////////////////////////////////////
//
// Menu
//

IDR_MENU1 MENU DISCARDABLE 
BEGIN
    POPUP "Control"
    BEGIN
        MENUITEM "Reset",                       ID_RESET
        MENUITEM SEPARATOR
        MENUITEM "CPU x1",                      ID_CPU_POWER0
        MENUITEM "CPU x2",                      ID_CPU_POWER1
        MENUITEM "CPU x4",                      ID_CPU_POWER2
        MENUITEM "CPU x8",                      ID_CPU_POWER3
        MENUITEM "CPU x16",                     ID_CPU_POWER4
        MENUITEM SEPARATOR
        MENUITEM "Paste",                       ID_AUTOKEY_START
        MENUITEM "Stop",                        ID_AUTOKEY_STOP
        MENUITEM SEPARATOR
        MENUITEM "Exit",                        ID_EXIT
    END
    POPUP "Cart"
    BEGIN
        MENUITEM "Open",                        ID_OPEN_CART1
        MENUITEM "Close",                       ID_CLOSE_CART1
        MENUITEM SEPARATOR
        MENUITEM "Recent",                      ID_RECENT_CART1
    END
    POPUP "FD1"
    BEGIN
        MENUITEM "Open",                        ID_OPEN_FD1
        MENUITEM "Close",                       ID_CLOSE_FD1
        MENUITEM SEPARATOR
        MENUITEM "Recent",                      ID_RECENT_FD1
    END
    POPUP "CMT"
    BEGIN
        MENUITEM "Play",                        ID_PLAY_TAPE
        MENUITEM "Rec",                         ID_REC_TAPE
        MENUITEM "Close",                       ID_CLOSE_TAPE
        MENUITEM SEPARATOR
        MENUITEM "Waveform Shaper",             ID_USE_WAVE_SHAPER
        MENUITEM SEPARATOR
        MENUITEM "Recent",                      ID_RECENT_TAPE
    END
    POPUP "Screen"
    BEGIN
        MENUITEM "Rec 60fps",                   ID_SCREEN_REC60
        MENUITEM "Rec 30fps",                   ID_SCREEN_REC30
        MENUITEM "Rec 15fps",                   ID_SCREEN_REC15
        MENUITEM "Stop",                        ID_SCREEN_STOP
        MENUITEM "Capture",                     ID_SCREEN_CAPTURE
        MENUITEM SEPARATOR
        MENUITEM "Window x1",                   ID_SCREEN_WINDOW1
        MENUITEM "Window x2",                   ID_SCREEN_WINDOW2
        MENUITEM "Window x3",                   ID_SCREEN_WINDOW3
        MENUITEM "Window x4",                   ID_SCREEN_WINDOW4
        MENUITEM "Window x5",                   ID_SCREEN_WINDOW5
        MENUITEM "Window x6",                   ID_SCREEN_WINDOW6
        MENUITEM "Window x7",                   ID_SCREEN_WINDOW7
        MENUITEM "Window x8",                   ID_SCREEN_WINDOW8
        MENUITEM "Fullscreen 1",                ID_SCREEN_FULLSCREEN1
        MENUITEM "Fullscreen 2",                ID_SCREEN_FULLSCREEN2
        MENUITEM "Fullscreen 3",                ID_SCREEN_FULLSCREEN3
        MENUITEM "Fullscreen 4",                ID_SCREEN_FULLSCREEN4
        MENUITEM "Fullscreen 5",                ID_SCREEN_FULLSCREEN5
        MENUITEM "Fullscreen 6",                ID_SCREEN_FULLSCREEN6
        MENUITEM "Fullscreen 7",                ID_SCREEN_FULLSCREEN7
        MENUITEM "Fullscreen 8",                ID_SCREEN_FULLSCREEN8
        MENUITEM "Fullscreen 9",                ID_SCREEN_FULLSCREEN9
        MENUITEM "Fullscreen 10",               ID_SCREEN_FULLSCREEN10
        MENUITEM "Fullscreen 11",               ID_SCREEN_FULLSCREEN11
        MENUITEM "Fullscreen 12",               ID_SCREEN_FULLSCREEN12
        MENUITEM "Fullscreen 13",               ID_SCREEN_FULLSCREEN13
        MENUITEM "Fullscreen 14",               ID_SCREEN_FULLSCREEN14
        MENUITEM "Fullscreen 15",               ID_SCREEN_FULLSCREEN15
        MENUITEM "Fullscreen 16",               ID_SCREEN_FULLSCREEN16
        MENUITEM "Fullscreen 17",               ID_SCREEN_FULLSCREEN17
        MENUITEM "Fullscreen 18",               ID_SCREEN_FULLSCREEN18
        MENUITEM "Fullscreen 19",               ID_SCREEN_FULLSCREEN19
        MENUITEM "Fullscreen 20",               ID_SCREEN_FULLSCREEN20
        MENUITEM "Fullscreen 21",               ID_SCREEN_FULLSCREEN21
        MENUITEM "Fullscreen 22",               ID_SCREEN_FULLSCREEN22
        MENUITEM "Fullscreen 23",               ID_SCREEN_FULLSCREEN23
        MENUITEM "Fullscreen 24",               ID_SCREEN_FULLSCREEN24
        MENUITEM "Fullscreen 25",               ID_SCREEN_FULLSCREEN25
        MENUITEM "Fullscreen 26",               ID_SCREEN_FULLSCREEN26
        MENUITEM "Fullscreen 27",               ID_SCREEN_FULLSCREEN27
        MENUITEM "Fullscreen 28",               ID_SCREEN_FULLSCREEN28
        MENUITEM "Fullscreen 29",               ID_SCREEN_FULLSCREEN29
        MENUITEM "Fullscreen 30",               ID_SCREEN_FULLSCREEN30
        MENUITEM SEPARATOR
        MENUITEM "Use Direct3D9",               ID_SCREEN_USE_D3D9
        MENUITEM "Wait Vsync",                  ID_SCREEN_WAIT_VSYNC
        MENUITEM "Stretch Screen",              ID_SCREEN_STRETCH
    END
    POPUP "Sound"
    BEGIN
        MENUITEM "Rec",                         ID_SOUND_REC
        MENUITEM "Stop",                        ID_SOUND_STOP
        MENUITEM SEPARATOR
        MENUITEM "2000Hz",                      ID_SOUND_FREQ0
        MENUITEM "4000Hz",                      ID_SOUND_FREQ1
        MENUITEM "8000Hz",                      ID_SOUND_FREQ2
        MENUITEM "11025Hz",                     ID_SOUND_FREQ3
        MENUITEM "22050Hz",                     ID_SOUND_FREQ4
        MENUITEM "44100Hz",                     ID_SOUND_FREQ5
        MENUITEM "48000Hz",                     ID_SOUND_FREQ6
        MENUITEM "96000Hz",                     ID_SOUND_FREQ7
        MENUITEM SEPARATOR
        MENUITEM "50msec",                      ID_SOUND_LATE0
        MENUITEM "100msec",                     ID_SOUND_LATE1
        MENUITEM "200msec",                     ID_SOUND_LATE2
        MENUITEM "300msec",                     ID_SOUND_LATE3
        MENUITEM "400msec",                     ID_SOUND_LATE4
    END
END


/////////////////////////////////////////////////////////////////////////////
//
// Icon
//

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1               ICON    DISCARDABLE     "msx1.ico"
#endif    // 英語 (アメリカ) resources
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED

vm.h


(省略)

// ASCII MSX1
#ifdef _MSX1
#include "msx1/msx1.h"
#endif

(省略)

i8255.cpp


(省略)

void I8255::reset()
{
	for(int i = 0; i < 3; i++) {
#ifdef _MSX1
		port[i].rmask = 0; /// 0xff;
#else
		port[i].rmask = 0xff;
#endif
		port[i].first = true;
		port[i].mode = 0;
	}
}

(省略)