C1541-III mbed edition

Dependencies:   mbed

Committer:
gertk
Date:
Mon Aug 22 21:11:59 2011 +0000
Revision:
1:0cbbb66a6100
Parent:
0:28557a4d2215
updated the nRESET pin to an interrupt capable pin (p29)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gertk 0:28557a4d2215 1 /*----------------------------------------------------------------------------------*/
gertk 0:28557a4d2215 2 /* These routines are designed to decode a file according the D64 format */
gertk 0:28557a4d2215 3 /*----------------------------------------------------------------------------------*/
gertk 0:28557a4d2215 4 /* */
gertk 0:28557a4d2215 5
gertk 0:28557a4d2215 6 /* History:
gertk 0:28557a4d2215 7 --------
gertk 0:28557a4d2215 8 2008-02-17 started with T64 coding
gertk 0:28557a4d2215 9 */
gertk 0:28557a4d2215 10
gertk 0:28557a4d2215 11 /* TO DO:
gertk 0:28557a4d2215 12 ------
gertk 0:28557a4d2215 13 */
gertk 0:28557a4d2215 14
gertk 0:28557a4d2215 15 /*----------------------------------------------------------------------------------*/
gertk 0:28557a4d2215 16
gertk 0:28557a4d2215 17
gertk 0:28557a4d2215 18 /*--------------------------------------------------------*/
gertk 0:28557a4d2215 19 /* includes */
gertk 0:28557a4d2215 20 /*--------------------------------------------------------*/
gertk 0:28557a4d2215 21 #include <mbed.h>
gertk 0:28557a4d2215 22 #include <stdio.h>
gertk 0:28557a4d2215 23 #include <main.h>
gertk 0:28557a4d2215 24 #include <hardware.h>
gertk 0:28557a4d2215 25 #include <fat.h>
gertk 0:28557a4d2215 26 #include <delay.h>
gertk 0:28557a4d2215 27 #include <T64_decoder.h>
gertk 0:28557a4d2215 28
gertk 0:28557a4d2215 29 /*--------------------------------------------------------*/
gertk 0:28557a4d2215 30 /* (tunable) constants */
gertk 0:28557a4d2215 31 /*--------------------------------------------------------*/
gertk 0:28557a4d2215 32
gertk 0:28557a4d2215 33
gertk 0:28557a4d2215 34 /*--------------------------------------------------------*/
gertk 0:28557a4d2215 35 /* constants */
gertk 0:28557a4d2215 36 /*--------------------------------------------------------*/
gertk 0:28557a4d2215 37 #define FALSE 0 /*FALSE*/
gertk 0:28557a4d2215 38 #define TRUE 1 /*TRUE*/
gertk 0:28557a4d2215 39
gertk 0:28557a4d2215 40 /*--------------------------------------------------------*/
gertk 0:28557a4d2215 41 /* table */
gertk 0:28557a4d2215 42 /*--------------------------------------------------------*/
gertk 0:28557a4d2215 43
gertk 0:28557a4d2215 44 /*variables*/
gertk 0:28557a4d2215 45 extern struct file2TYPE file; /*file handle*/
gertk 0:28557a4d2215 46
gertk 0:28557a4d2215 47 extern unsigned char error_code; /*this holds the error-message generated by one of the disk routines*/
gertk 0:28557a4d2215 48
gertk 0:28557a4d2215 49 /*--------------------------------------------------------*/
gertk 0:28557a4d2215 50 /* local functions */
gertk 0:28557a4d2215 51 /*--------------------------------------------------------*/
gertk 0:28557a4d2215 52
gertk 0:28557a4d2215 53 /*************************************************************************************/
gertk 0:28557a4d2215 54 /*External functions*/
gertk 0:28557a4d2215 55 /*************************************************************************************/
gertk 0:28557a4d2215 56 /*This routine will search for the first dir entry within track 18, it returns the track and sector of the corresponding file*/
gertk 0:28557a4d2215 57 /*mode: 0=first,1=next*/
gertk 0:28557a4d2215 58 unsigned char T64SeekDirEntry(unsigned char mode, unsigned char *track, unsigned char *sector, unsigned char *entry_cnt)
gertk 0:28557a4d2215 59 {
gertk 0:28557a4d2215 60 static unsigned char entry_counter, CurrentDirTrack, CurrentDirSector, NextDirTrack, NextDirSector;
gertk 0:28557a4d2215 61
gertk 0:28557a4d2215 62 switch(mode)
gertk 0:28557a4d2215 63 {
gertk 0:28557a4d2215 64 case 0: /*read from first directory block (Track 18, Sector 1)*/
gertk 0:28557a4d2215 65 {
gertk 0:28557a4d2215 66 entry_counter = 0;
gertk 0:28557a4d2215 67 break;
gertk 0:28557a4d2215 68 }
gertk 0:28557a4d2215 69
gertk 0:28557a4d2215 70 case 1: /*read from next directory block (Track , Sector )*/
gertk 0:28557a4d2215 71 {
gertk 0:28557a4d2215 72 entry_counter++;
gertk 0:28557a4d2215 73 break;
gertk 0:28557a4d2215 74 }
gertk 0:28557a4d2215 75 }
gertk 0:28557a4d2215 76
gertk 0:28557a4d2215 77 *entry_cnt = entry_counter;
gertk 0:28557a4d2215 78
gertk 0:28557a4d2215 79
gertk 0:28557a4d2215 80 return(TRUE); /*there is more info stored on other track(s)*/
gertk 0:28557a4d2215 81 }
gertk 0:28557a4d2215 82
gertk 0:28557a4d2215 83
gertk 0:28557a4d2215 84
gertk 0:28557a4d2215 85 /*----------------------------------------------------------------------------------------------*/
gertk 0:28557a4d2215 86 /*----------------------------------------------------------------------------------------------*/
gertk 0:28557a4d2215 87