libexsid  2.1
exSID_defs.h
Go to the documentation of this file.
1 //
2 // exSID_defs.h
3 // A simple I/O library for exSID USB - private header file
4 //
5 // (C) 2015-2017 Thibaut VARENE
6 // License: GPLv2 - http://www.gnu.org/licenses/gpl-2.0.html
7 //
8 
17 #ifndef exSID_defs_h
18 #define exSID_defs_h
19 
20 #ifdef HAVE_CONFIG_H
21 # include "config.h"
22 #endif
23 
24 // CLOCK_FREQ_NTSC = 1022727.14;
25 // CLOCK_FREQ_PAL = 985248.4;
26 
27 /* common definition for all hardware platforms */
34 #define XSC_USBMOD (4096/64*62)
35 #define XSC_USBLAT 1
36 #define XSC_BUFFMS 40
37 
38 /* exSID hardware definitions */
39 #define XS_BDRATE 2000000
40 #define XS_SIDCLK 1000000
41 #define XS_RSBCLK (XS_BDRATE/10)
42 #define XS_CYCCHR (XS_SIDCLK/XS_RSBCLK)
43 //#define XS_CYCCHR ((XS_SIDCLK+XS_RSBCLK-1)/XS_RSBCLK) // ceiling
44 #define XS_BUFFSZ ((((XS_RSBCLK/1000)*XSC_BUFFMS)/XSC_USBMOD)*XSC_USBMOD)
45 #define XS_LDMULT 501
46 
47 #define XS_MINDEL (XS_CYCCHR)
48 #define XS_CYCIO (2*XS_CYCCHR)
49 #define XS_MAXADJ 7
50 #define XS_LDOFFS (3*XS_CYCCHR)
51 
52 /* exSID+ hardware definitions */
53 #define XSP_RSBCLK 666667
54 #define XSP_BUFFSZ ((((XSP_RSBCLK/1000)*XSC_BUFFMS)/XSC_USBMOD)*XSC_USBMOD)
55 #define XSP_MINDEL 2
56 #define XSP_CYCIO 3
57 #define XSP_PRE_RD 2
58 #define XSP_POSTRD 2
59 #define XSP_MAXADJ 4
60 #define XSP_LDOFFS 3
61 #define XSP_CYCCS 2
62 
63 /* IOCTLS */
64 /* IO controls 0x3D to 0x7F are only implemented on exSID+ */
65 #define XSP_AD_IOCTCP 0x3D
66 #define XSP_AD_IOCTCN 0x3E
67 #define XSP_AD_IOCTC1 0x3F
68 
69 #define XSP_AD_IOCTA0 0x5D
70 #define XSP_AD_IOCTA1 0x5E
71 #define XSP_AD_IOCTA2 0x5F
72 
73 #define XSP_AD_IOCTA3 0x7D
74 #define XSP_AD_IOCTAM 0x7E
75 #define XSP_AD_IOCTAU 0x7F
76 
77 #define XS_AD_IOCTD1 0x9D
78 #define XS_AD_IOCTLD 0x9E
79 
80 #define XS_AD_IOCTS0 0xBD
81 #define XS_AD_IOCTS1 0xBE
82 #define XS_AD_IOCTSB 0xBF
83 
84 #define XS_AD_IOCTFV 0xFD
85 #define XS_AD_IOCTHV 0xFE
86 #define XS_AD_IOCTRS 0xFF
87 
88 #define XS_USBVID 0x0403
89 #define XS_USBPID 0x6001
90 #define XS_USBDSC "exSID USB"
91 
92 #define XSP_USBVID 0x0403
93 #define XSP_USBPID 0x6015
94 #define XSP_USBDSC "exSID+ USB"
95 
96 #define XS_MODEL_STD 0
97 #define XS_MODEL_PLUS 1
98 
99 #ifdef DEBUG
100  #define xsdbg(format, ...) printf("(%s) " format, __func__, ## __VA_ARGS__)
101 #else
102  #define xsdbg(format, ...) /* nothing */
103 #endif
104 
105 #ifdef HAVE_BUILTIN_EXPECT
106  #define likely(x) __builtin_expect(!!(x), 1)
107  #define unlikely(x) __builtin_expect(!!(x), 0)
108 #else
109  #define likely(x) (x)
110  #define unlikely(x) (x)
111 #endif
112 
113 #endif /* exSID_defs_h */