mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
Sort out a whole bunch of other things, including cleaning up the way the
verification source is handled.
This commit is contained in:
@@ -2,9 +2,10 @@
|
||||
#define AESLANIER_H
|
||||
|
||||
#define AESLANIER_RECORD_SEPARATOR 0x55555122
|
||||
#define AESLANIER_SECTOR_LENGTH 256
|
||||
#define AESLANIER_RECORD_SIZE (AESLANIER_SECTOR_LENGTH + 5)
|
||||
#define AESLANIER_SECTOR_LENGTH 256
|
||||
#define AESLANIER_RECORD_SIZE (AESLANIER_SECTOR_LENGTH + 5)
|
||||
|
||||
extern std::unique_ptr<Decoder> createAesLanierDecoder(const DecoderProto& config);
|
||||
extern std::unique_ptr<Decoder> createAesLanierDecoder(
|
||||
const DecoderProto& config);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -17,4 +17,3 @@ extern std::unique_ptr<Encoder> createAgatEncoder(const EncoderProto& config);
|
||||
extern uint8_t agatChecksum(const Bytes& bytes);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -5,16 +5,15 @@
|
||||
#include "decoders/decoders.h"
|
||||
#include "encoders/encoders.h"
|
||||
|
||||
#define APPLE2_SECTOR_RECORD 0xd5aa96
|
||||
#define APPLE2_DATA_RECORD 0xd5aaad
|
||||
#define APPLE2_SECTOR_RECORD 0xd5aa96
|
||||
#define APPLE2_DATA_RECORD 0xd5aaad
|
||||
|
||||
#define APPLE2_SECTOR_LENGTH 256
|
||||
#define APPLE2_SECTOR_LENGTH 256
|
||||
#define APPLE2_ENCODED_SECTOR_LENGTH 342
|
||||
|
||||
#define APPLE2_SECTORS 16
|
||||
#define APPLE2_SECTORS 16
|
||||
|
||||
extern std::unique_ptr<Decoder> createApple2Decoder(const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createApple2Encoder(const EncoderProto& config);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -3,17 +3,19 @@
|
||||
|
||||
/* Brother word processor format (or at least, one of them) */
|
||||
|
||||
#define BROTHER_SECTOR_RECORD 0xFFFFFD57
|
||||
#define BROTHER_DATA_RECORD 0xFFFFFDDB
|
||||
#define BROTHER_DATA_RECORD_PAYLOAD 256
|
||||
#define BROTHER_DATA_RECORD_CHECKSUM 3
|
||||
#define BROTHER_SECTOR_RECORD 0xFFFFFD57
|
||||
#define BROTHER_DATA_RECORD 0xFFFFFDDB
|
||||
#define BROTHER_DATA_RECORD_PAYLOAD 256
|
||||
#define BROTHER_DATA_RECORD_CHECKSUM 3
|
||||
#define BROTHER_DATA_RECORD_ENCODED_SIZE 415
|
||||
|
||||
#define BROTHER_TRACKS_PER_240KB_DISK 78
|
||||
#define BROTHER_TRACKS_PER_120KB_DISK 39
|
||||
#define BROTHER_SECTORS_PER_TRACK 12
|
||||
#define BROTHER_TRACKS_PER_240KB_DISK 78
|
||||
#define BROTHER_TRACKS_PER_120KB_DISK 39
|
||||
#define BROTHER_SECTORS_PER_TRACK 12
|
||||
|
||||
extern std::unique_ptr<Decoder> createBrotherDecoder(const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createBrotherEncoder(const EncoderProto& config);
|
||||
extern std::unique_ptr<Decoder> createBrotherDecoder(
|
||||
const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createBrotherEncoder(
|
||||
const EncoderProto& config);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
GCR_ENTRY(0x55, 0) // 00000
|
||||
GCR_ENTRY(0x57, 1) // 00001
|
||||
GCR_ENTRY(0x5b, 2) // 00010
|
||||
GCR_ENTRY(0x5d, 3) // 00011
|
||||
GCR_ENTRY(0x5f, 4) // 00100
|
||||
GCR_ENTRY(0x6b, 5) // 00101
|
||||
GCR_ENTRY(0x6d, 6) // 00110
|
||||
GCR_ENTRY(0x6f, 7) // 00111
|
||||
GCR_ENTRY(0x75, 8) // 01000
|
||||
GCR_ENTRY(0x77, 9) // 01001
|
||||
GCR_ENTRY(0x55, 0) // 00000
|
||||
GCR_ENTRY(0x57, 1) // 00001
|
||||
GCR_ENTRY(0x5b, 2) // 00010
|
||||
GCR_ENTRY(0x5d, 3) // 00011
|
||||
GCR_ENTRY(0x5f, 4) // 00100
|
||||
GCR_ENTRY(0x6b, 5) // 00101
|
||||
GCR_ENTRY(0x6d, 6) // 00110
|
||||
GCR_ENTRY(0x6f, 7) // 00111
|
||||
GCR_ENTRY(0x75, 8) // 01000
|
||||
GCR_ENTRY(0x77, 9) // 01001
|
||||
GCR_ENTRY(0x7b, 10) // 01010
|
||||
GCR_ENTRY(0x7d, 11) // 01011
|
||||
GCR_ENTRY(0x7f, 12) // 01100
|
||||
@@ -30,4 +30,3 @@ GCR_ENTRY(0xef, 28) // 11100
|
||||
GCR_ENTRY(0xf5, 29) // 11101
|
||||
GCR_ENTRY(0xf7, 30) // 11110
|
||||
GCR_ENTRY(0xfb, 31) // 11111
|
||||
|
||||
|
||||
@@ -76,4 +76,3 @@ GCR_ENTRY(0x6BAB, 74)
|
||||
GCR_ENTRY(0xAD5F, 75)
|
||||
GCR_ENTRY(0xDBED, 76)
|
||||
GCR_ENTRY(0x55BB, 77)
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
#include "decoders/decoders.h"
|
||||
#include "encoders/encoders.h"
|
||||
|
||||
#define C64_SECTOR_RECORD 0xffd49
|
||||
#define C64_DATA_RECORD 0xffd57
|
||||
#define C64_SECTOR_LENGTH 256
|
||||
#define C64_SECTOR_RECORD 0xffd49
|
||||
#define C64_DATA_RECORD 0xffd57
|
||||
#define C64_SECTOR_LENGTH 256
|
||||
|
||||
/* Source: http://www.unusedino.de/ec64/technical/formats/g64.html
|
||||
/* Source: http://www.unusedino.de/ec64/technical/formats/g64.html
|
||||
1. Header sync FF FF FF FF FF (40 'on' bits, not GCR)
|
||||
2. Header info 52 54 B5 29 4B 7A 5E 95 55 55 (10 GCR bytes)
|
||||
3. Header gap 55 55 55 55 55 55 55 55 55 (9 bytes, never read)
|
||||
@@ -17,18 +17,20 @@
|
||||
6. Inter-sector gap 55 55 55 55...55 55 (4 to 12 bytes, never read)
|
||||
1. Header sync (SYNC for the next sector)
|
||||
*/
|
||||
#define C64_HEADER_DATA_SYNC 0xFF
|
||||
#define C64_HEADER_BLOCK_ID 0x08
|
||||
#define C64_DATA_BLOCK_ID 0x07
|
||||
#define C64_HEADER_GAP 0x55
|
||||
#define C64_INTER_SECTOR_GAP 0x55
|
||||
#define C64_PADDING 0x0F
|
||||
#define C64_HEADER_DATA_SYNC 0xFF
|
||||
#define C64_HEADER_BLOCK_ID 0x08
|
||||
#define C64_DATA_BLOCK_ID 0x07
|
||||
#define C64_HEADER_GAP 0x55
|
||||
#define C64_INTER_SECTOR_GAP 0x55
|
||||
#define C64_PADDING 0x0F
|
||||
|
||||
#define C64_TRACKS_PER_DISK 40
|
||||
#define C64_BAM_TRACK 17
|
||||
#define C64_TRACKS_PER_DISK 40
|
||||
#define C64_BAM_TRACK 17
|
||||
|
||||
extern std::unique_ptr<Decoder> createCommodore64Decoder(const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createCommodore64Encoder(const EncoderProto& config);
|
||||
extern std::unique_ptr<Decoder> createCommodore64Decoder(
|
||||
const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createCommodore64Encoder(
|
||||
const EncoderProto& config);
|
||||
|
||||
extern nanoseconds_t clockPeriodForC64Track(unsigned track);
|
||||
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
#define F85_H
|
||||
|
||||
#define F85_SECTOR_RECORD 0xffffce /* 1111 1111 1111 1111 1100 1110 */
|
||||
#define F85_DATA_RECORD 0xffffcb /* 1111 1111 1111 1111 1100 1101 */
|
||||
#define F85_SECTOR_LENGTH 512
|
||||
#define F85_DATA_RECORD 0xffffcb /* 1111 1111 1111 1111 1100 1101 */
|
||||
#define F85_SECTOR_LENGTH 512
|
||||
|
||||
extern std::unique_ptr<Decoder> createDurangoF85Decoder(const DecoderProto& config);
|
||||
extern std::unique_ptr<Decoder> createDurangoF85Decoder(
|
||||
const DecoderProto& config);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -8,4 +8,3 @@
|
||||
extern std::unique_ptr<Decoder> createFb100Decoder(const DecoderProto& config);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -31,9 +31,7 @@ class Decoder;
|
||||
class DecoderProto;
|
||||
class EncoderProto;
|
||||
|
||||
extern std::unique_ptr<Decoder> createIbmDecoder(
|
||||
const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createIbmEncoder(
|
||||
const EncoderProto& config);
|
||||
extern std::unique_ptr<Decoder> createIbmDecoder(const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createIbmEncoder(const EncoderProto& config);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
#ifndef MACINTOSH_H
|
||||
#define MACINTOSH_H
|
||||
|
||||
#define MAC_SECTOR_RECORD 0xd5aa96 /* 1101 0101 1010 1010 1001 0110 */
|
||||
#define MAC_DATA_RECORD 0xd5aaad /* 1101 0101 1010 1010 1010 1101 */
|
||||
#define MAC_SECTOR_RECORD 0xd5aa96 /* 1101 0101 1010 1010 1001 0110 */
|
||||
#define MAC_DATA_RECORD 0xd5aaad /* 1101 0101 1010 1010 1010 1101 */
|
||||
|
||||
#define MAC_SECTOR_LENGTH 524 /* yes, really */
|
||||
#define MAC_SECTOR_LENGTH 524 /* yes, really */
|
||||
#define MAC_ENCODED_SECTOR_LENGTH 703
|
||||
#define MAC_FORMAT_BYTE 0x22
|
||||
#define MAC_FORMAT_BYTE 0x22
|
||||
|
||||
#define MAC_TRACKS_PER_DISK 80
|
||||
|
||||
@@ -15,8 +15,9 @@ class Decoder;
|
||||
class DecoderProto;
|
||||
class EncoderProto;
|
||||
|
||||
extern std::unique_ptr<Decoder> createMacintoshDecoder(const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createMacintoshEncoder(const EncoderProto& config);
|
||||
extern std::unique_ptr<Decoder> createMacintoshDecoder(
|
||||
const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createMacintoshEncoder(
|
||||
const EncoderProto& config);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,17 +1,20 @@
|
||||
#ifndef MICROPOLIS_H
|
||||
#define MICROPOLIS_H
|
||||
|
||||
#define MICROPOLIS_PAYLOAD_SIZE (256)
|
||||
#define MICROPOLIS_HEADER_SIZE (1+2+10)
|
||||
#define MICROPOLIS_ENCODED_SECTOR_SIZE (MICROPOLIS_HEADER_SIZE + MICROPOLIS_PAYLOAD_SIZE + 6)
|
||||
#define MICROPOLIS_PAYLOAD_SIZE (256)
|
||||
#define MICROPOLIS_HEADER_SIZE (1 + 2 + 10)
|
||||
#define MICROPOLIS_ENCODED_SECTOR_SIZE \
|
||||
(MICROPOLIS_HEADER_SIZE + MICROPOLIS_PAYLOAD_SIZE + 6)
|
||||
|
||||
class Decoder;
|
||||
class Encoder;
|
||||
class EncoderProto;
|
||||
class DecoderProto;
|
||||
|
||||
extern std::unique_ptr<Decoder> createMicropolisDecoder(const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createMicropolisEncoder(const EncoderProto& config);
|
||||
extern std::unique_ptr<Decoder> createMicropolisDecoder(
|
||||
const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createMicropolisEncoder(
|
||||
const EncoderProto& config);
|
||||
|
||||
extern uint8_t micropolisChecksum(const Bytes& bytes);
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#ifndef NORTHSTAR_H
|
||||
#define NORTHSTAR_H
|
||||
|
||||
/* Northstar floppies are 10-hard sectored disks with a sector format as follows:
|
||||
/* Northstar floppies are 10-hard sectored disks with a sector format as
|
||||
* follows:
|
||||
*
|
||||
* |----------------------------------|
|
||||
* | SYNC Byte | Payload | Checksum |
|
||||
@@ -12,15 +13,19 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#define NORTHSTAR_PREAMBLE_SIZE_SD (16)
|
||||
#define NORTHSTAR_PREAMBLE_SIZE_DD (32)
|
||||
#define NORTHSTAR_HEADER_SIZE_SD (1)
|
||||
#define NORTHSTAR_HEADER_SIZE_DD (2)
|
||||
#define NORTHSTAR_PAYLOAD_SIZE_SD (256)
|
||||
#define NORTHSTAR_PAYLOAD_SIZE_DD (512)
|
||||
#define NORTHSTAR_CHECKSUM_SIZE (1)
|
||||
#define NORTHSTAR_ENCODED_SECTOR_SIZE_SD (NORTHSTAR_HEADER_SIZE_SD + NORTHSTAR_PAYLOAD_SIZE_SD + NORTHSTAR_CHECKSUM_SIZE)
|
||||
#define NORTHSTAR_ENCODED_SECTOR_SIZE_DD (NORTHSTAR_HEADER_SIZE_DD + NORTHSTAR_PAYLOAD_SIZE_DD + NORTHSTAR_CHECKSUM_SIZE)
|
||||
#define NORTHSTAR_PREAMBLE_SIZE_SD (16)
|
||||
#define NORTHSTAR_PREAMBLE_SIZE_DD (32)
|
||||
#define NORTHSTAR_HEADER_SIZE_SD (1)
|
||||
#define NORTHSTAR_HEADER_SIZE_DD (2)
|
||||
#define NORTHSTAR_PAYLOAD_SIZE_SD (256)
|
||||
#define NORTHSTAR_PAYLOAD_SIZE_DD (512)
|
||||
#define NORTHSTAR_CHECKSUM_SIZE (1)
|
||||
#define NORTHSTAR_ENCODED_SECTOR_SIZE_SD \
|
||||
(NORTHSTAR_HEADER_SIZE_SD + NORTHSTAR_PAYLOAD_SIZE_SD + \
|
||||
NORTHSTAR_CHECKSUM_SIZE)
|
||||
#define NORTHSTAR_ENCODED_SECTOR_SIZE_DD \
|
||||
(NORTHSTAR_HEADER_SIZE_DD + NORTHSTAR_PAYLOAD_SIZE_DD + \
|
||||
NORTHSTAR_CHECKSUM_SIZE)
|
||||
|
||||
class Decoder;
|
||||
class Encoder;
|
||||
@@ -29,7 +34,9 @@ class DecoderProto;
|
||||
|
||||
extern uint8_t northstarChecksum(const Bytes& bytes);
|
||||
|
||||
extern std::unique_ptr<Decoder> createNorthstarDecoder(const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createNorthstarEncoder(const EncoderProto& config);
|
||||
extern std::unique_ptr<Decoder> createNorthstarDecoder(
|
||||
const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createNorthstarEncoder(
|
||||
const EncoderProto& config);
|
||||
|
||||
#endif /* NORTHSTAR */
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
extern std::unique_ptr<Decoder> createRolandD20Decoder(const DecoderProto& config);
|
||||
|
||||
extern std::unique_ptr<Decoder> createRolandD20Decoder(
|
||||
const DecoderProto& config);
|
||||
|
||||
@@ -7,4 +7,3 @@
|
||||
extern std::unique_ptr<Decoder> createSmaky6Decoder(const DecoderProto& config);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
#ifndef TIDS990_H
|
||||
#define TIDS990_H
|
||||
|
||||
#define TIDS990_PAYLOAD_SIZE 288 /* bytes */
|
||||
#define TIDS990_SECTOR_RECORD_SIZE 10 /* bytes */
|
||||
#define TIDS990_DATA_RECORD_SIZE (TIDS990_PAYLOAD_SIZE + 4) /* bytes */
|
||||
#define TIDS990_PAYLOAD_SIZE 288 /* bytes */
|
||||
#define TIDS990_SECTOR_RECORD_SIZE 10 /* bytes */
|
||||
#define TIDS990_DATA_RECORD_SIZE (TIDS990_PAYLOAD_SIZE + 4) /* bytes */
|
||||
|
||||
class Encoder;
|
||||
class Decoder;
|
||||
class DecoderProto;
|
||||
class EncoderProto;
|
||||
|
||||
extern std::unique_ptr<Decoder> createTids990Decoder(const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createTids990Encoder(const EncoderProto& config);
|
||||
extern std::unique_ptr<Decoder> createTids990Decoder(
|
||||
const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createTids990Encoder(
|
||||
const EncoderProto& config);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -13,12 +13,14 @@ class DecoderProto;
|
||||
|
||||
/* ... 1101 0100 1001
|
||||
* ^^ ^^^^ ^^^^ ten bit IO byte */
|
||||
#define VICTOR9K_DATA_RECORD 0xfffffd49
|
||||
#define VICTOR9K_DATA_RECORD 0xfffffd49
|
||||
#define VICTOR9K_DATA_ID 0x8
|
||||
|
||||
#define VICTOR9K_SECTOR_LENGTH 512
|
||||
|
||||
extern std::unique_ptr<Decoder> createVictor9kDecoder(const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createVictor9kEncoder(const EncoderProto& config);
|
||||
extern std::unique_ptr<Decoder> createVictor9kDecoder(
|
||||
const DecoderProto& config);
|
||||
extern std::unique_ptr<Encoder> createVictor9kEncoder(
|
||||
const EncoderProto& config);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
#ifndef ZILOGMCZ_H
|
||||
#define ZILOGMCZ_H
|
||||
|
||||
extern std::unique_ptr<Decoder> createZilogMczDecoder(const DecoderProto& config);
|
||||
extern std::unique_ptr<Decoder> createZilogMczDecoder(
|
||||
const DecoderProto& config);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user