Annotation of Gnu-Mach/i386/i386at/nfdreg.h, revision 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.