Annotation of hatari/src/includes/fdc.h, revision 1.1.1.9

1.1       root        1: /*
1.1.1.3   root        2:   Hatari - fdc.h
                      3: 
                      4:   This file is distributed under the GNU Public License, version 2 or at
                      5:   your option any later version. Read the file gpl.txt for details.
1.1       root        6: */
                      7: 
1.1.1.3   root        8: #ifndef HATARI_FDC_H
                      9: #define HATARI_FDC_H
                     10: 
1.1.1.2   root       11: /*-----------------------------------------------------------------------*/
                     12: /* FDC Emulation commands */
1.1.1.4   root       13: enum
                     14: {
                     15:        FDCEMU_CMD_NULL = 0,
                     16:        /* Type I */
                     17:        FDCEMU_CMD_RESTORE,
                     18:        FDCEMU_CMD_SEEK,
                     19:        FDCEMU_CMD_STEP,
                     20:        FDCEMU_CMD_STEPIN,
                     21:        FDCEMU_CMD_STEPOUT,
                     22:        /* Type II */
                     23:        FDCEMU_CMD_READSECTORS,
                     24:        FDCEMU_CMD_READMULTIPLESECTORS,
                     25:        FDCEMU_CMD_WRITESECTORS,
1.1.1.9 ! root       26:        FDCEMU_CMD_WRITEMULTIPLESECTORS,
        !            27:        /* Type III */
        !            28:        FDCEMU_CMD_READADDRESS,
1.1       root       29: };
                     30: 
1.1.1.2   root       31: /* FDC Emulation commands */
1.1       root       32: #define  FDCEMU_RUN_NULL      0
                     33: 
1.1.1.2   root       34: /* FDC Running Restore commands */
1.1.1.4   root       35: enum
                     36: {
                     37:        FDCEMU_RUN_RESTORE_SEEKTOTRACKZERO,
                     38:        FDCEMU_RUN_RESTORE_COMPLETE
1.1       root       39: };
                     40: 
1.1.1.2   root       41: /* FDC Running Seek commands */
1.1.1.4   root       42: enum
                     43: {
                     44:        FDCEMU_RUN_SEEK_TOTRACK,
                     45:        FDCEMU_RUN_SEEK_COMPLETE
1.1       root       46: };
                     47: 
1.1.1.2   root       48: /* FDC Running Step commands */
1.1.1.4   root       49: enum
                     50: {
                     51:        FDCEMU_RUN_STEP_ONCE,
                     52:        FDCEMU_RUN_STEP_COMPLETE
1.1       root       53: };
                     54: 
1.1.1.2   root       55: /* FDC Running Step In commands */
1.1.1.4   root       56: enum
                     57: {
                     58:        FDCEMU_RUN_STEPIN_ONCE,
                     59:        FDCEMU_RUN_STEPIN_COMPLETE
1.1       root       60: };
                     61: 
1.1.1.2   root       62: /* FDC Running Step Out commands */
1.1.1.4   root       63: enum
                     64: {
                     65:        FDCEMU_RUN_STEPOUT_ONCE,
                     66:        FDCEMU_RUN_STEPOUT_COMPLETE
1.1       root       67: };
                     68: 
1.1.1.2   root       69: /* FDC Running Read Sector/s commands */
1.1.1.4   root       70: enum
                     71: {
                     72:        FDCEMU_RUN_READSECTORS_READDATA,
                     73:        FDCEMU_RUN_READSECTORS_COMPLETE
1.1       root       74: };
                     75: 
1.1.1.2   root       76: /* FDC Running write Sector/s commands */
1.1.1.4   root       77: enum
                     78: {
                     79:        FDCEMU_RUN_WRITESECTORS_WRITEDATA,
                     80:        FDCEMU_RUN_WRITESECTORS_COMPLETE
1.1       root       81: };
                     82: 
1.1.1.9 ! root       83: /* FDC Running Read Address commands */
        !            84: enum
        !            85: {
        !            86:        FDCEMU_RUN_READADDRESS,
        !            87:        FDCEMU_RUN_READADDRESS_COMPLETE
        !            88: };
        !            89: 
1.1.1.3   root       90: 
1.1.1.9 ! root       91: /* Commands are taking the equivalent of FDC_DELAY_CYCLES cpu cycles to execute */
1.1.1.7   root       92: /* to try to simulate the speed of a real ST floppy drive */
                     93: #define FDC_DELAY_CYCLES               92160
                     94: //#define FDC_DELAY_CYCLES             1536    // 'Just Bugging Demo' by ACF requires a very fast delay (bug in the loader)
                     95: 
                     96: 
1.1.1.5   root       97: extern Sint16 FDCSectorCountRegister;
                     98: extern Uint16 DiskControllerWord_ff8604wr;
1.1.1.4   root       99: extern Uint16 DMAModeControl_ff8606wr;
1.1.1.3   root      100: 
                    101: 
1.1       root      102: extern void FDC_Reset(void);
1.1.1.8   root      103: extern void FDC_MemorySnapShot_Capture(bool bSave);
1.1       root      104: extern void FDC_ResetDMAStatus(void);
1.1.1.8   root      105: extern void FDC_SetDMAStatus(bool bError);
1.1.1.4   root      106: extern void FDC_DmaStatus_ReadWord(void);
1.1.1.2   root      107: extern int FDC_FindFloppyDrive(void);
                    108: extern void FDC_AcknowledgeInterrupt(void);
1.1.1.6   root      109: extern void FDC_GpipRead(void);
1.1.1.7   root      110: extern void FDC_InterruptHandler_Update(void);
1.1       root      111: extern void FDC_UpdateRestoreCmd(void);
                    112: extern void FDC_UpdateSeekCmd(void);
                    113: extern void FDC_UpdateStepCmd(void);
                    114: extern void FDC_UpdateStepInCmd(void);
                    115: extern void FDC_UpdateStepOutCmd(void);
                    116: extern void FDC_UpdateReadSectorsCmd(void);
                    117: extern void FDC_UpdateWriteSectorsCmd(void);
1.1.1.9 ! root      118: extern void FDC_UpdateReadAddressCmd(void);
1.1.1.4   root      119: extern Uint32 FDC_ReadDMAAddress(void);
                    120: extern void FDC_WriteDMAAddress(Uint32 Address);
1.1.1.8   root      121: extern bool FDC_ReadSectorFromFloppy(void);
                    122: extern bool FDC_WriteSectorFromFloppy(void);
1.1       root      123: extern void FDC_DMADataFromFloppy(void);
1.1.1.5   root      124: extern void FDC_DiskController_WriteWord(void);
                    125: extern void FDC_DiskControllerStatus_ReadWord(void);
1.1.1.4   root      126: extern void FDC_DmaModeControl_WriteWord(void);
1.1.1.7   root      127: extern void FDC_FloppyMode_WriteByte(void);
                    128: extern void FDC_FloppyMode_ReadByte(void);
1.1.1.3   root      129: 
                    130: 
                    131: #endif /* ifndef HATARI_FDC_H */

unix.superglobalmegacorp.com

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