mirror of
				https://github.com/davidgiven/fluxengine.git
				synced 2025-10-31 11:17:01 -07:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef IBM_H
 | |
| #define IBM_H
 | |
| 
 | |
| /* IBM format (i.e. ordinary PC floppies). */
 | |
| 
 | |
| #define IBM_MFM_SYNC 0xA1  /* sync byte for MFM */
 | |
| #define IBM_IAM 0xFC       /* start-of-track record */
 | |
| #define IBM_IAM_LEN 1      /* plus prologue */
 | |
| #define IBM_IDAM 0xFE      /* sector header */
 | |
| #define IBM_IDAM_LEN 7     /* plus prologue */
 | |
| #define IBM_DAM1 0xF8      /* sector data (type 1) */
 | |
| #define IBM_DAM2 0xFB      /* sector data (type 2) */
 | |
| #define IBM_TRS80DAM1 0xF9 /* sector data (TRS-80 directory) */
 | |
| #define IBM_TRS80DAM2 0xFA /* sector data (TRS-80 directory) */
 | |
| #define IBM_DAM_LEN 1      /* plus prologue and user data */
 | |
| 
 | |
| /* Length of a DAM record is determined by the previous sector header. */
 | |
| 
 | |
| struct IbmIdam
 | |
| {
 | |
|     uint8_t id;
 | |
|     uint8_t track;
 | |
|     uint8_t side;
 | |
|     uint8_t sector;
 | |
|     uint8_t sectorSize;
 | |
|     uint8_t crc[2];
 | |
| };
 | |
| 
 | |
| class Encoder;
 | |
| class Decoder;
 | |
| class DecoderProto;
 | |
| class EncoderProto;
 | |
| 
 | |
| extern std::unique_ptr<Decoder> createIbmDecoder(const DecoderProto& config);
 | |
| extern std::unique_ptr<Encoder> createIbmEncoder(const EncoderProto& config);
 | |
| 
 | |
| #endif
 |