summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author arbee <rb6502@users.noreply.github.com>2015-01-31 22:26:30 -0500
committer arbee <rb6502@users.noreply.github.com>2015-01-31 22:26:30 -0500
commit0d5783fd8562e1b2c5f797f0453a3ae3783b0349 (patch)
tree762966f8e543fbe67169d26648b50632b59c4c33
parent4a18ab8682c722bca364de67787bd471d04d6d72 (diff)
apple2: properly handle ProDOS-order Microsoft CP/M boot disk [R. Belmont]
-rw-r--r--src/lib/formats/ap2_dsk.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/formats/ap2_dsk.c b/src/lib/formats/ap2_dsk.c
index 056fe05aebc..5e66b601e42 100644
--- a/src/lib/formats/ap2_dsk.c
+++ b/src/lib/formats/ap2_dsk.c
@@ -615,6 +615,7 @@ bool a2_16sect_format::load(io_generic *io, UINT32 form_factor, floppy_image *im
static const unsigned char dos33_block1[4] = { 0xa2, 0x02, 0x8e, 0x52 };
static const unsigned char sos_block1[4] = { 0xc9, 0x20, 0xf0, 0x3e };
static const unsigned char a3a2emul_block1[6] = { 0x8d, 0xd0, 0x03, 0x4c, 0xc7, 0xa4 };
+ static const unsigned char cpm22_block1[8] = { 0xa2, 0x55, 0xa9, 0x00, 0x9d, 0x00, 0x0d, 0xca };
io_generic_read(io, sector_data, fpos, 256*16);
@@ -658,6 +659,10 @@ bool a2_16sect_format::load(io_generic *io, UINT32 form_factor, floppy_image *im
else if (!memcmp(pascal2_block1, &sector_data[0x100], 4))
{
m_prodos_order = true;
+ } // check for CP/M disks in ProDOS order
+ else if (!memcmp(cpm22_block1, &sector_data[0x100], 8))
+ {
+ m_prodos_order = true;
}
}