Annotation of Gnu-Mach/i386/i386at/nfdreg.h, revision 1.1.1.1

1.1       root        1: /* 
                      2:  * Copyright (c) 1994 Shantanu Goel
                      3:  * All Rights Reserved.
                      4:  * 
                      5:  * Permission to use, copy, modify and distribute this software and its
                      6:  * documentation is hereby granted, provided that both the copyright
                      7:  * notice and this permission notice appear in all copies of the
                      8:  * software, derivative works or modified versions, and any portions
                      9:  * thereof, and that both notices appear in supporting documentation.
                     10:  * 
                     11:  * THE AUTHOR ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
                     12:  * CONDITION.  THE AUTHOR DISCLAIMS ANY LIABILITY OF ANY KIND FOR
                     13:  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     14:  */
                     15: 
                     16: /*
                     17:  * NEC 765/Intel 8272 floppy disk controller.
                     18:  */
                     19: 
                     20: /*
                     21:  * Ports
                     22:  */
                     23: #define FD_DOR(p)      (p)             /* digital output register */
                     24: #define FD_STATUS(p)   ((p) + 2)       /* status register */
                     25: #define FD_DATA(p)     ((p) + 3)       /* data register */
                     26: #define FD_RATE(p)     ((p) + 5)       /* transfer rate register */
                     27: #define FD_DIR(p)      ((p) + 5)       /* digital input register */
                     28: 
                     29: /*
                     30:  * Digital output register.
                     31:  */
                     32: #define DOR_IENABLE    0x08    /* enable interrupts and DMA */
                     33: #define DOR_RSTCLR     0x04    /* clear reset */
                     34: 
                     35: /*
                     36:  * Status register.
                     37:  */
                     38: #define ST_RQM         0x80    /* request for master */
                     39: #define ST_DIO         0x40    /* direction of data transfer
                     40:                                   1 = fdc to cpu, 0 = cpu to fdc */
                     41: #define ST_NDM         0x20    /* non DMA mode */
                     42: #define ST_CB          0x10    /* controller busy */
                     43: 
                     44: /*
                     45:  * Digital input register.
                     46:  */
                     47: #define DIR_DSKCHG     0x80    /* diskette chnage has occured */
                     48: 
                     49: /*
                     50:  * ST0
                     51:  */
                     52: #define ST0_IC         0xc0    /* interrupt code */
                     53: #define ST0_SE         0x20    /* seek end */
                     54: #define ST0_EC         0x10    /* equipment check */
                     55: #define ST0_NR         0x08    /* not ready */
                     56: #define ST0_HD         0x04    /* head address */
                     57: #define ST0_US         0x03    /* unit select */
                     58: 
                     59: /*
                     60:  * ST1
                     61:  */
                     62: #define ST1_EC         0x80    /* end of cylinder */
                     63: #define ST1_DE         0x20    /* CRC data error */
                     64: #define ST1_OR         0x10    /* DMA overrun */
                     65: #define ST1_ND         0x04    /* sector not found */
                     66: #define ST1_NW         0x02    /* write-protected diskette */
                     67: #define ST1_MA         0x01    /* missing address mark */
                     68: 
                     69: /*
                     70:  * ST2
                     71:  */
                     72: #define ST2_CM         0x40    /* control mark */
                     73: #define ST2_DD         0x20    /* data error */
                     74: #define ST2_WC         0x10    /* wrong cylinder */
                     75: #define ST2_SH         0x08    /* scan equal hit */
                     76: #define ST2_SN         0x04    /* scan not satisfied */
                     77: #define ST2_BC         0x02    /* bad cylinder */
                     78: #define ST2_MD         0x01    /* missing address mark */
                     79: 
                     80: /*
                     81:  * ST3
                     82:  */
                     83: #define ST3_FT         0x80    /* fault */
                     84: #define ST3_WP         0x40    /* write protect */
                     85: #define ST3_RY         0x20    /* ready */
                     86: #define ST3_T0         0x10    /* track 0 */
                     87: #define ST3_TS         0x08    /* two side */
                     88: #define ST3_HD         0x04    /* head address */
                     89: #define ST3_US         0x03    /* unit select */
                     90: 
                     91: /*
                     92:  * Commands.
                     93:  */
                     94: #define CMD_SPECIFY    0x03
                     95: #define CMD_RECAL      0x07
                     96: #define CMD_SENSEI     0x08
                     97: #define CMD_SEEK       0x0f
                     98: #define CMD_FORMAT     0x4d
                     99: #define CMD_WRITE      0xc5
                    100: #define CMD_READ       0xe6
                    101: 
                    102: /*
                    103:  * Information required by FDC when formatting a diskette.
                    104:  */
                    105: struct format_info {
                    106:        unsigned char   cyl;
                    107:        unsigned char   head;
                    108:        unsigned char   sector;
                    109:        unsigned char   secsize;
                    110: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.