From 34835ae4a556985130c4a09c2f812f78cbb42be0 Mon Sep 17 00:00:00 2001 From: smf- Date: Tue, 25 Sep 2012 05:24:22 +0000 Subject: [PATCH] (MESS) correct capacity is logged when drive parameters are set (nw) --- src/mess/machine/s1410.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/mess/machine/s1410.c b/src/mess/machine/s1410.c index 3959cd7a2e0..8f1ce9d98ed 100644 --- a/src/mess/machine/s1410.c +++ b/src/mess/machine/s1410.c @@ -274,9 +274,24 @@ void s1410_device::WriteData( UINT8 *data, int dataLength ) { case S1410_CMD_INIT_DRIVE_PARAMS: { - UINT16 tracks=((data[0]<<8)+data[1]); + int sectorsPerTrack = 0; + int bytesPerSector = GetSectorBytes(); + + switch( bytesPerSector ) + { + case 256: + sectorsPerTrack = 32; + break; + + case 512: + sectorsPerTrack = 17; + break; + } + + UINT16 tracks = ((data[0]<<8)+data[1]); UINT8 heads = data[2]; - UINT32 capacity=(tracks * heads) * 17; + UINT32 capacity = tracks * heads * sectorsPerTrack * bytesPerSector; + logerror("S1410_CMD_INIT_DRIVE_PARAMS Tracks=%d, Heads=%d, Capacity=%d\n",tracks,heads,capacity); } break;