Gert van der Knokke
/
C1541III
C1541-III mbed edition
T64_decoder.c@1:0cbbb66a6100, 2011-08-22 (annotated)
- 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?
User | Revision | Line number | New 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 |