This commit is contained in:
Sin Shimozono 2014-09-01 11:32:30 +09:00
parent 3f0896dd15
commit 4969a9e60a
8 changed files with 3378 additions and 7 deletions

BIN
floppy-emu-1.0Q-F13/femu.bin Executable file

Binary file not shown.

BIN
floppy-emu-1.0Q-F13/firmware.xvf Executable file

Binary file not shown.

2133
floppy-emu-1.0Q-F13/floppyemu.hex Executable file

File diff suppressed because it is too large Load Diff

1198
floppy-emu-1.0Q-F13/merged.hex Executable file

File diff suppressed because it is too large Load Diff

24
floppy-emu-1.0Q-F13/readme.txt Executable file
View File

@ -0,0 +1,24 @@
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)

View File

@ -1,7 +1,7 @@
avrtarget/ClockFrequency=16000000
avrtarget/ClockFrequency=20000000
avrtarget/ExtRAMSize=0
avrtarget/ExtendedRAM=false
avrtarget/MCUType=atmega2560
avrtarget/MCUType=atmega1284p
avrtarget/UseEEPROM=false
avrtarget/UseExtendedRAMforHeap=true
avrtarget/perConfig=false

View File

@ -193,7 +193,7 @@ void InitDiskMenu(SdFat& sd)
SdBaseFile::dirName(dir, pFileEntries[diskMenuEntryCount].shortName);
pFileEntries[diskMenuEntryCount].imageFileType = imageType;
diskMenuEntryCount++;
}
}
}
// add up directory, if not at the root
@ -204,7 +204,7 @@ void InitDiskMenu(SdFat& sd)
pFileEntries[diskMenuEntryCount].imageFileType = DISK_IMAGE_UP_DIRECTORY;
diskMenuEntryCount++;
}
char file1[FILENAME_LEN+1], file2[FILENAME_LEN+1], temp[FILENAME_LEN+1];
eImageType tempType;
@ -223,7 +223,21 @@ void InitDiskMenu(SdFat& sd)
file2[x] = toupper(file2[x]);
// sort directories before regular files
int diff = strncmp(file1, file2, FILENAME_LEN+1);
int diff = 0; // = strncmp(file1, file2, FILENAME_LEN+1);
int p;
for (p = 0; i < FILENAME_LEN+1; p++) {
diff = file1[p] - file2[p];
if ( diff != 0 ) {
if ( file1[p] == '.' )
diff = 127 - file2[2];
else if ( file2[p] == '.' )
diff = file1[p] - 127;
break;
}
if ( file1[p] == 0 )
break;
}
// possibly either directory or file is the major key
if (pFileEntries[i].imageFileType == DISK_IMAGE_DIRECTORY ||
pFileEntries[i].imageFileType == DISK_IMAGE_UP_DIRECTORY)
diff -= 1000;

View File

@ -55,11 +55,13 @@
#define CPLD_STEP_DIR_MOTOR_ON_PIN 7
#define CPLD_STEP_REQ_PORT D
#define CPLD_STEP_REQ_PIN 0 // PCINT24
#define CPLD_STEP_REQ_PIN 0
// PCINT24
#define CPLD_STEP_REQ_INT_MSK PCMSK3
// PCINT31:24
#define CPLD_STEP_REQ_INT_PIN PCINT24
#define CPLD_STEP_REQ_INT_ENABLE PCIE3
//PCICR BIT3
#define CPLD_CURRENT_SIDE_PORT C
#define CPLD_CURRENT_SIDE_PIN 1 // PCINT17
#define CPLD_CURRENT_SIDE_INT_MSK PCMSK2