mirror of
https://github.com/OlivierGuinart/Merlin32BuildSolution.git
synced 2024-12-26 17:29:49 +00:00
First commit
This commit is contained in:
parent
240b66fcc7
commit
e18c3baaec
11
HelloWorld.s
Normal file
11
HelloWorld.s
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
; Uses S-C Assembler variant.
|
||||||
|
* This is also a valid comment...
|
||||||
|
org $800
|
||||||
|
main ldy #$00
|
||||||
|
start_loop lda HelloWorld,y
|
||||||
|
beq end_loop
|
||||||
|
jsr $fded ; ROM routine, COUT, y is preserved
|
||||||
|
iny
|
||||||
|
bne start_loop
|
||||||
|
end_loop rts
|
||||||
|
HelloWorld ASC "HELLO WORLD!"00
|
22
HelloWorld.sln
Normal file
22
HelloWorld.sln
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Express 2013 for Windows Desktop
|
||||||
|
VisualStudioVersion = 12.0.31101.0
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloWorld", "HelloWorld.vcxproj", "{BAF4B8D0-B039-479F-911C-2EC80FAEA2DD}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Win32 = Debug|Win32
|
||||||
|
Release|Win32 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{BAF4B8D0-B039-479F-911C-2EC80FAEA2DD}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{BAF4B8D0-B039-479F-911C-2EC80FAEA2DD}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{BAF4B8D0-B039-479F-911C-2EC80FAEA2DD}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{BAF4B8D0-B039-479F-911C-2EC80FAEA2DD}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
81
HelloWorld.vcxproj
Normal file
81
HelloWorld.vcxproj
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{BAF4B8D0-B039-479F-911C-2EC80FAEA2DD}</ProjectGuid>
|
||||||
|
<Keyword>MakeFileProj</Keyword>
|
||||||
|
<SccProjectName>SAK</SccProjectName>
|
||||||
|
<SccAuxPath>SAK</SccAuxPath>
|
||||||
|
<SccLocalPath>SAK</SccLocalPath>
|
||||||
|
<SccProvider>SAK</SccProvider>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Makefile</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Makefile</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<NMakeOutput>$(PRG)</NMakeOutput>
|
||||||
|
<NMakePreprocessorDefinitions>
|
||||||
|
</NMakePreprocessorDefinitions>
|
||||||
|
<ExecutablePath>$(MERLIN32WIN);$(PATH);</ExecutablePath>
|
||||||
|
<IncludePath />
|
||||||
|
<ReferencePath />
|
||||||
|
<LibraryPath>$(MERLIN32LIBS);</LibraryPath>
|
||||||
|
<LibraryWPath />
|
||||||
|
<SourcePath />
|
||||||
|
<ExcludePath />
|
||||||
|
<NMakeBuildCommandLine>nmake.exe</NMakeBuildCommandLine>
|
||||||
|
<NMakeReBuildCommandLine>nmake.exe all</NMakeReBuildCommandLine>
|
||||||
|
<NMakeCleanCommandLine>nmake.ex clean</NMakeCleanCommandLine>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<NMakeOutput>$(PRG)</NMakeOutput>
|
||||||
|
<NMakePreprocessorDefinitions>
|
||||||
|
</NMakePreprocessorDefinitions>
|
||||||
|
<ExecutablePath>$(MERLIN32WIN);$(PATH);</ExecutablePath>
|
||||||
|
<IncludePath />
|
||||||
|
<ReferencePath />
|
||||||
|
<LibraryPath>$(MERLIN32LIBS);</LibraryPath>
|
||||||
|
<LibraryWPath />
|
||||||
|
<SourcePath />
|
||||||
|
<ExcludePath />
|
||||||
|
<NMakeBuildCommandLine>nmake.exe</NMakeBuildCommandLine>
|
||||||
|
<NMakeReBuildCommandLine>nmake.exe all</NMakeReBuildCommandLine>
|
||||||
|
<NMakeCleanCommandLine>nmake.ex clean</NMakeCleanCommandLine>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="HelloWorld.s" />
|
||||||
|
<None Include="MAKEFILE" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
66
MAKEFILE
Normal file
66
MAKEFILE
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
# Program name
|
||||||
|
PRG=HelloWorld
|
||||||
|
# System target
|
||||||
|
SYSTEM=apple2enh
|
||||||
|
# The test below allows to keep working on this in different environments\computers
|
||||||
|
!if "$(COMPUTERNAME)" == "M"
|
||||||
|
# That's the location where I have programs such as AppleWin, or a DOS blank disk image
|
||||||
|
MyAppleFolder="C:\Users\Olivier\OneDrive\Apple"
|
||||||
|
!else
|
||||||
|
# Work environment...
|
||||||
|
MyAppleFolder="D:\Apple"
|
||||||
|
# This was running on GSPort @ work
|
||||||
|
GSPORT=$(MyAppleFolder)\sport_0.31\gsport.exe
|
||||||
|
!endif
|
||||||
|
|
||||||
|
# Misc. vars
|
||||||
|
# https://github.com/AppleWin/AppleWin
|
||||||
|
APPLEWIN=$(MyAppleFolder)\AppleWin\Applewin.exe
|
||||||
|
# http://www.brutaldeluxe.fr/products/crossdevtools/merlin/
|
||||||
|
MERLIN32ROOT=$(MyAppleFolder)\Merlin32_v1.0
|
||||||
|
MERLIN32LIBS=$(MERLIN32ROOT)\Library
|
||||||
|
MERLIN32WIN=$(MERLIN32ROOT)\Windows
|
||||||
|
MERLIN32EXE=$(MERLIN32WIN)\merlin32.exe
|
||||||
|
# http://applecommander.sourceforge.net/
|
||||||
|
APPLECOMMANDER=$(MyAppleFolder)\AppleCommander-1.3.5-ac.jar
|
||||||
|
ACJAR=java.exe -jar $(APPLECOMMANDER)
|
||||||
|
|
||||||
|
|
||||||
|
$(PRG): $(PRG).s
|
||||||
|
@Echo ***************************************************************
|
||||||
|
@Echo *** On compile l'exécutable / Compile program
|
||||||
|
@Echo ***************************************************************
|
||||||
|
$(MERLIN32EXE) -V $(MERLIN32LIBS) $(PRG).s
|
||||||
|
|
||||||
|
GetFloppyAndCopyDSK:
|
||||||
|
@Echo ***************************************************************
|
||||||
|
@Echo *** On copie la disquette vierge à partir du répertoire parent
|
||||||
|
@Echo *** et on copie dessus les fichiers executables et autres
|
||||||
|
@Echo *** Copying blank disk image and copying the program on it
|
||||||
|
@Echo ***************************************************************
|
||||||
|
copy /Y $(MyAppleFolder)\prodos.dsk .\$(PRG).dsk
|
||||||
|
$(ACJAR) -p $(PRG).dsk $(PRG) bin 2048 < $(PRG)
|
||||||
|
|
||||||
|
LaunchAppleWin:
|
||||||
|
@Echo ***************************************************************
|
||||||
|
@Echo *** On lance le tout dans AppleWin / Launch AppleWin
|
||||||
|
@Echo ***************************************************************
|
||||||
|
$(APPLEWIN) -d1 $(PRG).dsk
|
||||||
|
|
||||||
|
LaunchGSPort:
|
||||||
|
@Echo ***************************************************************
|
||||||
|
@Echo *** On lance le tout dans GSPORT / Launch GSPort (not used here)
|
||||||
|
@Echo ***************************************************************
|
||||||
|
#$(GSPORT) -d1 $(PRG).dsk
|
||||||
|
$(GSPORT)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@Echo ***************************************************************
|
||||||
|
@Echo *** On efface les fichiers programme, objet et backup
|
||||||
|
@Echo *** Clean files
|
||||||
|
@Echo ***************************************************************
|
||||||
|
del _FileInformation.txt $(PRG)_Output.txt $(PRG).dsk $(PRG)
|
||||||
|
|
||||||
|
all: clean $(PRG) GetFloppyAndCopyDSK LaunchAppleWin
|
||||||
|
|
||||||
|
|
BIN
Merlin32BuildSolution.gif
Normal file
BIN
Merlin32BuildSolution.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 272 KiB |
@ -1,2 +1,7 @@
|
|||||||
# Merlin32BuildSolution
|
# Merlin32BuildSolution
|
||||||
Visual Studio makefile solution to build with Merlin32
|
Visual Studio makefile solution to build Apple II projects with Merlin32.
|
||||||
|
|
||||||
|
![](https://github.com/OlivierGuinart/Merlin32BuildSolution/blob/master/Merlin32BuildSolution.gif)
|
||||||
|
|
||||||
|
This is a boilerplate VS solution to jumpstart Merlin32 projects development. The most important file is MAKEFILE: this is where you set your paths to your local tools, e.g. AppleWin, prodos.dsk, Merlin32, AppleCommander, GSPort, etc...
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user