fdc.h
ubixos/types.h
src/sys/include/ubixos/init.h
src/sys/isa/fdc.c
ubixos/types.h
sys/_types.h
src/sys/include/isa/fdc.h
src/sys/init/main.c
src/sys/include/ubixos/init.h
src/sys/include/isa/fdc.h
src/sys/isa/fdc.c
DrvGeom
cmdRead
(0xe6)
fdcRw
cmdRecal
(0x07)
recalibrate
cmdSeek
(0x0f)
seek
cmdSensei
(0x08)
waitFdc
cmdSpecify
(0x03)
reset
cmdWrite
(0xc5)
fdcRw
dg144Gap3rw
0x1b
fdcRw
dg144Heads
2
dg144Spt
18
fdcRw
dg144Tracks
80
dg168Gap3rw
0x1c
fdcRw
fdcCcr
(0x3f7)
fdcRw
fdcData
(0x3f5)
getByte
sendByte
fdcDir
(0x3f7)
fdcRw
waitFdc
fdcDor
(0x3f2)
motorOn
reset
fdcDrs
(0x3f4)
fdcMsr
(0x3f4)
getByte
sendByte
waitFdc
DrvGeom typedef struct DrvGeom drvGeom drvGeom
void void block2Hts (int block, int *head, int *track, int *sector) block2Hts int block int * head int * track int * sector geometry DrvGeom::heads DrvGeom::spt fdcRw
int int fdc_init () fdc_init devfs_makeNode device_add dInt dPresent fdcInit2 fdcRead fdcWrite floppyIsr device_interface::init irqEnable kmalloc device_interface::major mVec device_interface::read reset device_interface::reset setVector device_interface::write
void void fdcRead (void *info, void *, uInt32 startSector, uInt32 sectorCount) fdcRead void * info void * uInt32 startSector uInt32 sectorCount fdcSpinLock readBlock spinLock spinUnlock fdc_init
bool bool fdcRw (int block, Int8 *blockBuffer, bool read, unsigned long numSectors) fdcRw int block Int8 * blockBuffer bool read unsigned long numSectors block2Hts cmdRead cmdWrite dg144Gap3rw dg144Spt dg168Gap3rw diskChange dmaXfer FALSE fdcCcr fdcDir fdcRw geometry inportByte kprint kprintf motorOff motorOn outportByte recalibrate reset seek sendByte DrvGeom::spt status tbaddr TRUE waitFdc fdcRw readBlock writeBlock
void void fdcWrite (void *info, void *, uInt32 startSector, uInt32 sectorCount) fdcWrite void * info void * uInt32 startSector uInt32 sectorCount writeBlock fdc_init
void void floppyIsr () floppyIsr fdc_init
void void floppyIsrhndlr () floppyIsrhndlr done outportByte TRUE x20
int int getByte () getByte fdcData fdcMsr inportByte waitFdc
void void motorOff (void) motorOff void FALSE motor TRUE fdcRw recalibrate
void void motorOn (void) motorOn void FALSE fdcDor motor outportByte TRUE fdcRw recalibrate
bool bool readBlock (int block, Int8 *blockBuffer, unsigned long numSectors) readBlock int block Int8 * blockBuffer unsigned long numSectors fdcRw TRUE fdcRead
void void recalibrate (void) recalibrate void cmdRecal motorOff motorOn sendByte TRUE waitFdc fdcRw reset
void void reset (void) reset void cmdSpecify diskChange done FALSE fdcDor motor outportByte recalibrate seek sendByte TRUE waitFdc fdc_init fdcRw
bool bool seek (int track) seek int track cmdSeek FALSE fdcTrack kprintf sendByte sr0 TRUE waitFdc x20 fdcRw reset
void void sendByte (int Int8) sendByte int Int8 fdcData fdcMsr inportByte outportByte fdcRw recalibrate reset seek waitFdc
bool bool waitFdc (bool sensei) waitFdc bool sensei cmdSensei diskChange done FALSE fdcDir fdcMsr fdcTrack getByte inportByte sendByte sr0 statSize status timeOut TRUE fdcRw recalibrate reset seek
bool bool writeBlock (int block, Int8 *blockBuffer, unsigned long numSectors) writeBlock int block Int8 * blockBuffer unsigned long numSectors FALSE fdcRw fdcWrite

    /*****************************************************************************************
    Copyright(c)2002-2004TheUbixOSProject
    Allrightsreserved.

    Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are
    permittedprovidedthatthefollowingconditionsaremet:

    Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof
    conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary
    formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing
    disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided
    withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits
    contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware
    withoutspecificpriorwrittenpermission.

    THISSOFTWAREISPROVIDEDBYTHECOPYRIGHTHOLDERSANDCONTRIBUTORS"ASIS"ANDANY
    EXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THEIMPLIEDWARRANTIESOF
    MERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSEAREDISCLAIMED.INNOEVENTSHALL
    THECOPYRIGHTOWNERORCONTRIBUTORSBELIABLEFORANYDIRECT,INDIRECT,INCIDENTAL,
    SPECIAL,EXEMPLARY,ORCONSEQUENTIALDAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENT
    OFSUBSTITUTEGOODSORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION)
    HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICTLIABILITY,OR
    TORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAYOUTOFTHEUSEOFTHIS
    SOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOFSUCHDAMAGE.

    $Id: fdc_8h.xml 88 2016-01-12 00:11:29Z reddawg $

    *****************************************************************************************/

    #ifndef_FDC_H
    #define_FDC_H

    #include<ubixos/types.h>

    typedefstructDrvGeom{
    Int8heads;
    Int8tracks;
    Int8spt;
    }drvGeom;

    #definefdcMsr(0x3f4)
    #definefdcData(0x3f5)
    #definefdcDir(0x3f7)
    #definefdcCcr(0x3f7)
    #definefdcDor(0x3f2)
    #definefdcDrs(0x3f4)

    #definecmdWrite(0xc5)
    #definecmdRead(0xe6)
    #definecmdSeek(0x0f)
    #definecmdSensei(0x08)
    #definecmdRecal(0x07)
    #definecmdSpecify(0x03)

    #definedg144Heads2/*headsperdrive(1.44M)*/
    #definedg144Tracks80
    #definedg144Spt18
    #definedg144Gap3rw0x1b
    #definedg168Gap3rw0x1c

    intfdc_init();
    voidfloppyIsr();
    voidfloppyIsrhndlr();
    voidsendByte(intInt8);
    intgetByte();
    boolfdcRw(intblock,Int8*blockBuffer,boolread,unsignedlongnumSectors);
    voidblock2Hts(intblock,int*head,int*track,int*sector);
    voidmotorOn(void);
    voidmotorOff(void);
    boolseek(inttrack);
    boolwaitFdc(boolsensei);
    intgetByte();
    voidsendByte(intInt8);
    voidrecalibrate(void);
    voidreset(void);
    boolwriteBlock(intblock,Int8*blockBuffer,unsignedlongnumSectors);
    boolreadBlock(intblock,Int8*blockBuffer,unsignedlongnumSectors);
    voidfdcWrite(void*info,void*,uInt32startSector,uInt32sectorCount);
    voidfdcRead(void*info,void*,uInt32startSector,uInt32sectorCount);

    #endif

    /***
    $Log: fdc_8h.xml,v $
    Revision 1.6  2006/12/19 14:12:51  reddawg
    rtld-elf almost workign

    Revision1.1.1.12006/06/0112:46:14reddawg
    ubix2

    Revision1.22005/10/1200:13:36reddawg
    Removed

    Revision1.1.1.12005/09/2617:23:39reddawg
    nomessage

    Revision1.62004/07/1702:38:31reddawg
    Fixedafewproblems

    Revision1.52004/07/1412:42:46reddawg
    fdc:fdcInittofdc_init
    ChangedStartupRoutines

    Revision1.42004/05/2114:57:16reddawg
    Cleanedup

    END
    ***/