floppy-emu organized

This commit is contained in:
Sin Shimozono 2014-07-12 15:36:53 +09:00
parent de725331e6
commit f2b82a39c1
109 changed files with 217 additions and 3922 deletions

BIN
floppy-emu-1.0Q-F13.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,24 +0,0 @@
To update the Xilinx CPLD firmware:
1. Copy firmware.xvf to the root directory of your SD card, and insert it into Floppy Emu.
2. Hold down the PREV and NEXT buttons.
3. Press and release the RESET button.
4. Follow the on-screen prompts.
To update the microcontroller application software:
If you have the SD bootloader already installed:
1. Copy femu.bin to the root directory of your SD card, and insert it into Floppy Emu.
2. Hold down the PREV and SELECT buttons.
3. Press and release the RESET button.
4. Follow the on-screen prompts.
If you don't have the SD bootloader installed:
1. Use your AVR ISP programmer to flash floppyemu.hex to the microcontroller.
If you want to install the SD bootloader:
1. Use your AVR ISP programmer to flash merged.hex to the microcontroller.
2. Use the ISP programmer to set the BOOTRST fuse to 1 (on), and the BOOTSZ fuse to 2048W_F800. (Fuses should be Extended: 0xFC, High: 0xDA, Low: 0xBF)

Binary file not shown.

View File

@ -36,7 +36,7 @@
#include <Sd2Card.h>
#include "../millitimer.h"
#include "..\millitimer.h"
//------------------------------------------------------------------------------
#ifndef SOFTWARE_SPI

View File

@ -181,7 +181,7 @@ class SdBaseFile {
/** Create an instance. */
SdBaseFile() : writeError(false), type_(FAT_FILE_TYPE_CLOSED) {}
SdBaseFile(const char* path, uint8_t oflag);
~SdBaseFile() { if(isOpen()) close(); }
~SdBaseFile() {if(isOpen()) close();}
/**
* writeError is set to true if an error occurs during a write().
* Set writeError to false before calling print() and/or write() and check

View File

@ -48,7 +48,7 @@ init_spi:
.global dly_100us
.func dly_100us
dly_100us:
ldi r24, lo8(16000000 / 100000) ;(F_CPU / 100000) /* Loop counter */
ldi r24, lo8(F_CPU / 100000) /* Loop counter */
1: sbiw r30, 1 /* 10 clocks per loop */
sbiw r30, 1
sbiw r30, 1

View File

@ -7,14 +7,10 @@
#include <avr/io.h>
#ifdef USE_BOOTLDR_MAIN
int main(void)
{
while(1)
{
//TODO:: Please write your application code
}
}
#endif
}

View File

@ -146,4 +146,4 @@ void LcdInit()
LcdGoto(0,0);
LcdClear();
}
}

View File

@ -30,16 +30,12 @@
#include "diskmenu.h"
#include "cardtest.h"
#ifdef ENABLE_ORIGINAL_COMPILER_WORKAROUND
// work-around for compiler bug
#undef PROGMEM
#define PROGMEM __attribute__(( section(".progmem.data") ))
#undef PSTR
#define PSTR(s) (__extension__({static prog_char __c[] PROGMEM = (s); &__c[0];}))
#endif
#define STATUS_LED_PORT B
#define STATUS_LED_PIN 3
@ -217,4 +213,4 @@ void CardTest()
while(1);
}
}

View File

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# AvrStudio Solution File, Format Version 11.00
Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "floppyemu", "floppyemu.cppproj", "{E27520EB-9B21-411F-B8C6-71C8E4B8B1B6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|AVR = Debug|AVR
Release|AVR = Release|AVR
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E27520EB-9B21-411F-B8C6-71C8E4B8B1B6}.Debug|AVR.ActiveCfg = Debug|AVR
{E27520EB-9B21-411F-B8C6-71C8E4B8B1B6}.Debug|AVR.Build.0 = Debug|AVR
{E27520EB-9B21-411F-B8C6-71C8E4B8B1B6}.Release|AVR.ActiveCfg = Release|AVR
{E27520EB-9B21-411F-B8C6-71C8E4B8B1B6}.Release|AVR.Build.0 = Release|AVR
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Binary file not shown.

View File

@ -31,16 +31,12 @@
#include "ports.h"
#include "diskmenu.h"
#ifdef ENABLE_ORIGINAL_COMPILER_WORKAROUND
// work-around for compiler bug
#undef PROGMEM
#define PROGMEM __attribute__(( section(".progmem.data") ))
#undef PSTR
#define PSTR(s) (__extension__({static prog_char __c[] PROGMEM = (s); &__c[0];}))
#endif
// I/O pin assignments
#define CPLD_RESET_PORT B
#define CPLD_RESET_PIN 0
@ -2018,4 +2014,4 @@ restart: ;
}
}
}
}
}

View File

@ -0,0 +1,189 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>5.1</ProjectVersion>
<ProjectGuid>{e27520eb-9b21-411f-b8c6-71c8e4b8b1b6}</ProjectGuid>
<avrdevice>ATmega1284P</avrdevice>
<avrdeviceseries>none</avrdeviceseries>
<OutputType>Executable</OutputType>
<Language>CPP</Language>
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
<AvrGccProjectExtensions>
</AvrGccProjectExtensions>
<AssemblyName>floppyemu</AssemblyName>
<Name>floppyemu</Name>
<RootNamespace>floppyemu</RootNamespace>
<avrtool>com.atmel.avrdbg.tool.ispmk2</avrtool>
<ToolchainName>com.Atmel.AVRGCC8</ToolchainName>
<ToolchainFlavour>Native</ToolchainFlavour>
<AsfVersion>2.11.1</AsfVersion>
<avrtoolinterface>ISP</avrtoolinterface>
<com_atmel_avrdbg_tool_ispmk2>
<ToolType xmlns="">com.atmel.avrdbg.tool.ispmk2</ToolType>
<ToolName xmlns="">AVRISP mkII</ToolName>
<ToolNumber xmlns="">000200006259</ToolNumber>
<Channel xmlns="">
<host>127.0.0.1</host>
<port>49229</port>
<ssl>False</ssl>
</Channel>
<ToolOptions xmlns="">
<InterfaceName>JTAG</InterfaceName>
<InterfaceProperties>
<JtagDbgClock>1000000</JtagDbgClock>
<JtagProgClock>1000000</JtagProgClock>
<IspClock>150000</IspClock>
<JtagInChain>false</JtagInChain>
<JtagEnableExtResetOnStartSession>false</JtagEnableExtResetOnStartSession>
<JtagDevicesBefore>0</JtagDevicesBefore>
<JtagDevicesAfter>0</JtagDevicesAfter>
<JtagInstrBitsBefore>0</JtagInstrBitsBefore>
<JtagInstrBitsAfter>0</JtagInstrBitsAfter>
</InterfaceProperties>
</ToolOptions>
</com_atmel_avrdbg_tool_ispmk2>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<OutputFileName>floppyemu</OutputFileName>
<OutputFileExtension>.elf</OutputFileExtension>
<ToolchainSettings>
<AvrGccCpp>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</avrgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcccpp.compiler.symbols.DefSymbols>
<ListValues>
<Value>F_CPU=20000000</Value>
</ListValues>
</avrgcccpp.compiler.symbols.DefSymbols>
<avrgcccpp.compiler.directories.IncludePaths>
<ListValues>
<Value>../SdFat</Value>
<Value>../xsvf</Value>
</ListValues>
</avrgcccpp.compiler.directories.IncludePaths>
<avrgcccpp.compiler.optimization.level>Optimize more (-O2)</avrgcccpp.compiler.optimization.level>
<avrgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>True</avrgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
<avrgcccpp.linker.libraries.Libraries>
<ListValues>
<Value>m</Value>
</ListValues>
</avrgcccpp.linker.libraries.Libraries>
<avrgcccpp.linker.optimization.GarbageCollectUnusedSections>True</avrgcccpp.linker.optimization.GarbageCollectUnusedSections>
<avrgcccpp.linker.optimization.RelaxBranches>True</avrgcccpp.linker.optimization.RelaxBranches>
<avrgcccpp.linker.memorysettings.Flash>
<ListValues>
<Value>.bootldrinfo=0xF7FC</Value>
</ListValues>
</avrgcccpp.linker.memorysettings.Flash>
</AvrGccCpp>
</ToolchainSettings>
<UsesExternalMakeFile>True</UsesExternalMakeFile>
<OutputDirectory>C:\Users\chamberlin\Documents\floppyemu\AVR\Release</OutputDirectory>
<ExternalMakeFilePath>C:\Users\chamberlin\Documents\floppyemu\AVR\Release\Makefile</ExternalMakeFilePath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputFileName>floppyemu</OutputFileName>
<OutputFileExtension>.elf</OutputFileExtension>
<ToolchainSettings>
<AvrGccCpp>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcccpp.compiler.optimization.DebugLevel>Default (-g2)</avrgcccpp.compiler.optimization.DebugLevel>
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
<avrgcccpp.linker.libraries.Libraries>
<ListValues>
<Value>m</Value>
</ListValues>
</avrgcccpp.linker.libraries.Libraries>
<avrgcccpp.assembler.debugging.DebugLevel>Default (-g2)</avrgcccpp.assembler.debugging.DebugLevel>
</AvrGccCpp>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
<Compile Include="cardtest.cpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="cardtest.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="diskmenu.cpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="diskmenu.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="floppyemu.cpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="millitimer.cpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="millitimer.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="noklcd.cpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="noklcd.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="SdFat\Sd2Card.cpp">
<SubType>compile</SubType>
<Link>Sd2Card.cpp</Link>
</Compile>
<Compile Include="SdFat\SdBaseFile.cpp">
<SubType>compile</SubType>
<Link>SdBaseFile.cpp</Link>
</Compile>
<Compile Include="SdFat\SdFat.cpp">
<SubType>compile</SubType>
<Link>SdFat.cpp</Link>
</Compile>
<Compile Include="SdFat\SdVolume.cpp">
<SubType>compile</SubType>
<Link>SdVolume.cpp</Link>
</Compile>
<Compile Include="xsvf\lenval.cpp">
<SubType>compile</SubType>
<Link>lenval.cpp</Link>
</Compile>
<Compile Include="xsvf\lenval.h">
<SubType>compile</SubType>
<Link>lenval.h</Link>
</Compile>
<Compile Include="xsvf\micro.cpp">
<SubType>compile</SubType>
<Link>micro.cpp</Link>
</Compile>
<Compile Include="xsvf\micro.h">
<SubType>compile</SubType>
<Link>micro.h</Link>
</Compile>
<Compile Include="xsvf\ports.cpp">
<SubType>compile</SubType>
<Link>ports.cpp</Link>
</Compile>
<Compile Include="xsvf\ports.h">
<SubType>compile</SubType>
<Link>ports.h</Link>
</Compile>
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\AvrGCC.targets" />
</Project>

View File

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 140 KiB

View File

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Some files were not shown because too many files have changed in this diff Show More