1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
#ifndef __SIO__
#define __SIO__
#include "atari.h"
#define MAX_DRIVES 8
#ifdef WIN32
#include "windows.h"
#define FILENAME_LEN MAX_PATH
#else
#define FILENAME_LEN 256
#endif
/*
* it seems, there are two different ATR formats with different handling for
* DD sectors
*/
#define SIO2PC_ATR 1
#define OTHER_ATR 2
extern char sio_status[256];
extern char sio_filename[MAX_DRIVES][FILENAME_LEN];
int SIO_Mount(int diskno, char *filename);
void SIO_Dismount(int diskno);
void SIO_DisableDrive(int diskno);
void SIO(void);
void SIO_SEROUT(unsigned char byte, int cmd);
int SIO_SERIN(void);
#define SIO_NoFrame (0x00)
#define SIO_CommandFrame (0x01)
#define SIO_StatusRead (0x02)
#define SIO_ReadFrame (0x03)
#define SIO_WriteFrame (0x04)
#define SIO_FinalStatus (0x05)
#define SIO_FormatFrame (0x06)
void SwitchCommandFrame(int onoff);
void SIO_PutByte(int byte);
int SIO_GetByte(void);
void SIO_Initialize(void);
void SIO_Initialise(int *argc, char *argv[]);
/* Some defines about the serial I/O timing. Currently fixed! */
#define XMTDONE_INTERVAL 15
#define SERIN_INTERVAL 15
#define SEROUT_INTERVAL 15
#define VBI_INTERVAL 165
#define ACK_INTERVAL 50
#endif
|