Path: utzoo!mnetor!uunet!husc6!bbn!gatech!udel!mmdf From: Leisner.Henr@xerox.com (marty) Newsgroups: comp.os.minix Subject: Re: Minix compatibility rumors Message-ID: <1021@louie.udel.EDU> Date: 20 Jan 88 15:22:57 GMT Sender: mmdf@udel.EDU Lines: 77 I have a hard disk driver which runs successfully on both 6 amd 8 Mhz PC ATs. Does the official driver also run on 6 and 8 Mhz PCs? I've seen various fixes to the disk driver over time, but have pretty much ignored them since I'm running on my ATs without problems and also some Wyse clones. In the compatibility listing: IBM PC-AT @6MHz ast@cs.vu.nl yes yes IBM PC-AT @8MHz ast@cs.vu.nl yes no Note it is a hacked (cleaner?) up V1.1 driver. I read the Western Digital specs, saw some things which didn't fully make sense and tried to get the drive r to agree to the spec. What's the story on the 6 and 8 Mhz ATs? I currently am using the driver in both protected and real mode Minix systems. One of the things I did was changed the definitions: #define WIN_REG1 0x1f0 /* data register */ #define WIN_REG2 0x1f1 /* error count */ #define WIN_REG3 0x1f2 /* sector count */ #define WIN_REG4 0x1f3 /* sector number */ #define WIN_REG5 0x1f4 /* cylinder number (low byte) */ #define WIN_REG6 0x1f5 /* cylinder number (high byte) */ #define WIN_REG7 0x1f6 /* sdh register */ #define WIN_REG8 0x1f7 /* status/command register */ #define WIN_REG9 0x3f6 /* alternate fixed disk status */ to #define WIN_BASE_ADDR 0x1f0 #define WIN_DATA_REG WIN_BASE_ADDR #define WIN_ERROR_REG WIN_BASE_ADDR + 1 #define WIN_SECTOR_COUNT WIN_BASE_ADDR + 2 #define WIN_SECTOR_NUMBER WIN_BASE_ADDR + 3 #define WIN_CYL_NUM_LOW WIN_BASE_ADDR + 4 #define WIN_SDH_REG WIN_BASE_ADDR + 6 #define WIN_STATUS_REG WIN_BASE_ADDR + 7 # define STATUS_ERR 1 # define STATUS_IDX 2 # define STATUS_CRD 4 # define STATUS_DRQ 8 # define STATUS_SC 0x10 # define STATUS_WF 0x20 # define STATUS_RDY 0x40 # define STATUS_BSY 0x80 #define WIN_FIXED_DISK 0x3f6 # define RESET_CONTROLLER 0x4 # define WIN_INTR_ENABLE 0x2 This made it a little easier to work with the code and the data book at the sam e time. I also use the Aztec port i/o functions (inportb, outportb). Basically instead of inportb(foo, &result) I use result = inportb(foo); If there's interest, I could post the driver. It would take a little work to get it to run on a standard Minix system. Something I never got around to do is change all "magic bits" being tested to the above #defines. marty ARPA: leisner.henr@xerox.com GV: leisner.henr NS: martin leisner:henr801c:xerox ------- End of Forwarded Message