use super::{DiskKind,TrackLayout,BlockLayout,FieldCode,FluxCode};
macro_rules! uni {
($x:expr_2021) => {
[$x,0,0,0,0]
};
}
pub const A2_DOS32: TrackLayout = TrackLayout {
cylinders: uni!(35),
sides: uni!(1),
sectors: uni!(13),
sector_size: uni!(256),
flux_code: [FluxCode::GCR;5],
addr_code: [FieldCode::WOZ((4,4));5],
data_code: [FieldCode::WOZ((5,3));5],
speed_kbps: [250;5]
};
pub const A2_DOS33: TrackLayout = TrackLayout {
cylinders: uni!(35),
sides: uni!(1),
sectors: uni!(16),
sector_size: uni!(256),
flux_code: [FluxCode::GCR;5],
addr_code: [FieldCode::WOZ((4,4));5],
data_code: [FieldCode::WOZ((6,2));5],
speed_kbps: [250;5]
};
pub const A2_400: TrackLayout = TrackLayout {
cylinders: [16,16,16,16,16],
sides: [1,1,1,1,1],
sector_size: [524,524,524,524,524],
sectors: [12,11,10,9,8],
flux_code: [FluxCode::GCR;5],
addr_code: [FieldCode::WOZ((6,2));5],
data_code: [FieldCode::WOZ((6,2));5],
speed_kbps: [500;5]
};
pub const A2_800: TrackLayout = TrackLayout {
cylinders: [16,16,16,16,16],
sides: [2,2,2,2,2],
sector_size: [524,524,524,524,524],
sectors: [12,11,10,9,8],
flux_code: [FluxCode::GCR;5],
addr_code: [FieldCode::WOZ((6,2));5],
data_code: [FieldCode::WOZ((6,2));5],
speed_kbps: [500;5]
};
pub const CPM_1: TrackLayout = TrackLayout {
cylinders: uni!(77),
sides: uni!(1),
sector_size: uni!(128),
sectors: uni!(26),
flux_code: [FluxCode::FM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [500;5]
};
pub const DSDD_77: TrackLayout = TrackLayout {
cylinders: uni!(77),
sides: uni!(2),
sector_size: uni!(1024),
sectors: uni!(8),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [500;5]
};
pub const AMSTRAD_SS: TrackLayout = TrackLayout {
cylinders: uni!(40),
sides: uni!(1),
sector_size: uni!(512),
sectors: uni!(9),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [250;5]
};
pub const OSBORNE1_SD: TrackLayout = TrackLayout {
cylinders: uni!(40),
sides: uni!(1),
sector_size: uni!(256),
sectors: uni!(10),
flux_code: [FluxCode::FM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [250;5]
};
pub const OSBORNE1_DD: TrackLayout = TrackLayout {
cylinders: uni!(40),
sides: uni!(1),
sector_size: uni!(1024),
sectors: uni!(5),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [250;5]
};
pub const TRS80_M2_CPM: TrackLayout = TrackLayout {
cylinders: [1,76,0,0,0],
sides: [1,1,0,0,0],
sector_size: [128,512,0,0,0],
sectors: [26,16,0,0,0],
flux_code: [FluxCode::FM,FluxCode::MFM,FluxCode::None,FluxCode::None,FluxCode::None],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [500;5]
};
pub const NABU_CPM: TrackLayout = TrackLayout {
cylinders: [1,76,0,0,0],
sides: [2,2,0,0,0],
sector_size: [128,256,0,0,0],
sectors: [26,26,0,0,0],
flux_code: [FluxCode::FM,FluxCode::MFM,FluxCode::None,FluxCode::None,FluxCode::None],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [500;5]
};
pub const KAYPROII: TrackLayout = TrackLayout {
cylinders: uni!(40),
sides: uni!(1),
sector_size: uni!(512),
sectors: uni!(10),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [250;5]
};
pub const KAYPRO4: TrackLayout = TrackLayout {
cylinders: uni!(40),
sides: uni!(2),
sector_size: uni!(512),
sectors: uni!(10),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [250;5]
};
pub const IBM_SSDD_8: TrackLayout = TrackLayout {
cylinders: uni!(40),
sides: uni!(1),
sector_size: uni!(512),
sectors: uni!(8),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [250;5]
};
pub const IBM_DSDD_8: TrackLayout = TrackLayout {
cylinders: uni!(40),
sides: uni!(2),
sector_size: uni!(512),
sectors: uni!(8),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [250;5]
};
pub const IBM_SSDD_9: TrackLayout = TrackLayout {
cylinders: uni!(40),
sides: uni!(1),
sector_size: uni!(512),
sectors: uni!(9),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [250;5]
};
pub const IBM_DSDD_9: TrackLayout = TrackLayout {
cylinders: uni!(40),
sides: uni!(2),
sector_size: uni!(512),
sectors: uni!(9),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [250;5]
};
pub const IBM_SSQD: TrackLayout = TrackLayout {
cylinders: uni!(80),
sides: uni!(1),
sector_size: uni!(512),
sectors: uni!(8),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [250;5]
};
pub const IBM_DSQD: TrackLayout = TrackLayout {
cylinders: uni!(80),
sides: uni!(2),
sector_size: uni!(512),
sectors: uni!(8),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [250;5]
};
pub const IBM_DSHD: TrackLayout = TrackLayout {
cylinders: uni!(80),
sides: uni!(2),
sector_size: uni!(512),
sectors: uni!(15),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [500;5]
};
pub const IBM_720: TrackLayout = TrackLayout {
cylinders: uni!(80),
sides: uni!(2),
sector_size: uni!(512),
sectors: uni!(9),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [250;5]
};
pub const IBM_1440: TrackLayout = TrackLayout {
cylinders: uni!(80),
sides: uni!(2),
sector_size: uni!(512),
sectors: uni!(18),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [500;5]
};
pub const IBM_1680: TrackLayout = TrackLayout {
cylinders: uni!(80),
sides: uni!(2),
sector_size: uni!(512),
sectors: uni!(21),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [500;5]
};
pub const IBM_1720: TrackLayout = TrackLayout {
cylinders: uni!(82),
sides: uni!(2),
sector_size: uni!(512),
sectors: uni!(21),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [500;5]
};
pub const IBM_2880: TrackLayout = TrackLayout {
cylinders: uni!(80),
sides: uni!(2),
sector_size: uni!(512),
sectors: uni!(36),
flux_code: [FluxCode::MFM;5],
addr_code: [FieldCode::None;5],
data_code: [FieldCode::None;5],
speed_kbps: [1000;5]
};
pub const A2_DOS32_KIND: DiskKind = DiskKind::D525(A2_DOS32);
pub const A2_DOS33_KIND: DiskKind = DiskKind::D525(A2_DOS33);
pub const A2_400_KIND: DiskKind = DiskKind::D35(A2_400);
pub const A2_800_KIND: DiskKind = DiskKind::D35(A2_800);
pub const IBM_CPM1_KIND: DiskKind = DiskKind::D8(CPM_1);
pub const A2_HD_MAX: DiskKind = DiskKind::LogicalBlocks(BlockLayout {block_count: 65535, block_size: 512});
pub const AMSTRAD_SS_KIND: DiskKind = DiskKind::D3(AMSTRAD_SS);
pub const OSBORNE1_SD_KIND: DiskKind = DiskKind::D525(OSBORNE1_SD);
pub const OSBORNE1_DD_KIND: DiskKind = DiskKind::D525(OSBORNE1_DD);
pub const TRS80_M2_CPM_KIND: DiskKind = DiskKind::D8(TRS80_M2_CPM);
pub const NABU_CPM_KIND: DiskKind = DiskKind::D8(NABU_CPM);
pub const KAYPROII_KIND: DiskKind = DiskKind::D525(KAYPROII);
pub const KAYPRO4_KIND: DiskKind = DiskKind::D525(KAYPRO4);