From 4689282116b4a059ac2aaa8ea48e83e6ae14a53c Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Wed, 20 May 2015 22:03:21 +0100 Subject: [PATCH] pcw8256: sort out the floppy driver Reading at least now works with these fixes and bodges. Lots more debug to do. --- Kernel/platform-pcw8256/devfd.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Kernel/platform-pcw8256/devfd.c b/Kernel/platform-pcw8256/devfd.c index 1ac8991b..30ab8504 100644 --- a/Kernel/platform-pcw8256/devfd.c +++ b/Kernel/platform-pcw8256/devfd.c @@ -65,8 +65,9 @@ static void motor_off(void) */ static void fd_geom(int minor, blkno_t block) { - int ntrack = block / 9; - int nsector = (block % 9) + 1; + int ntrack = block >> 3; + int nsector = (block & 7) + 1; + fd765_cmdbuf[1] = 0; fd765_cmdbuf[2] = ntrack; fd765_rw_data[2] = ntrack; fd765_rw_data[3] = 0; /* single sided for now */ @@ -78,10 +79,15 @@ static void fd_geom(int minor, blkno_t block) if (ntrack == track[minor]) return; fd765_cmdbuf[0] = 0x0F; + fd765_intwait(); fd765_cmd3(); if (fd765_intwait() & 0x20) - track[minor] = fd765_statbuf[1] & 0x7F; + track[minor] = ntrack;//FIXMEfd765_statbuf[1] & 0x7F; + else { + track[minor] = 0xFF; + kputs("seekbad?\n"); + } } -- 2.34.1