Netcruzer Library API  V2.03
 All Data Structures Files Functions Variables Typedefs Enumerations Macros Groups Pages
nz_ioPortDefs.h
Go to the documentation of this file.
1 
46 #ifndef IO_PORT_DEFS_H
47 #define IO_PORT_DEFS_H
48 
50 #define IOPORT_ID_NA 0xff //Port not available (use 0xff = erased flash)
51 #define UCPORT_ID_NA 0xff //UCPort not available (use 0xff = erased flash)
52 #define UCPORT_INDEX_NA 0xff //UCPort Index not available (use 0xff = erased flash)
53 #define BITADR_NA 0xffff //Bit Address not available (use 0xffff = erased flash)
54 
55 //Define addresses for CNPD1 and CNPU6 for different CPUs
56 #if defined(__PIC24FJ256GB206__) || defined(__PIC24FJ256GB208__) || defined(__PIC24FJ256GB210__)
57 #define CNPD1_ADR 0x0056
58 #define CNPU6_ADR 0x0078
59 #elif defined(__PIC24FJ128GB106__) || defined(__PIC24FJ128GB108__) || defined(__PIC24FJ128GB110__)
60 #define CNPD1_ADR 0x0054
61 #define CNPU6_ADR 0x0076
62 #endif
63 
64 
66 //Port type rules (UCPORT_CONFIG.type)
67 // - Bits 8-15 is a PCFG_XXX_TYPE constant (or bits 8-15 of PTYPE_XXX), giving type of the pin
68 // ~ 0-0x7F are inputs
69 // ~ 0x80-0xFF are ouputs
70 // - Bit 0-7 gives details about the type
71 //For Output types:
72 // - Bit 7 specifies it is an open collector output
73 //For Input types:
74 // - Bit 7 specifies pull-up resistor is enabled
75 // - Bit 6 specifies pull-down resistor is enabled
76 
77 #define PCFG_NA_TYPE 0xff // Port Not available (use 0xff = erased flash)
78 
80 //Inputs Types
81 
82 //Flags for all input types
83 #define PCFG_IN_FL_PULLUP 0x80 // Pull-up enabled Flag (can be ORed with other PCFG_DIN_xxx defines)
84 #define PCFG_IN_FL_PULLDOWN 0x40 // Pull-down enabled Flag (can be ORed with other PCFG_DIN_xxx defines)
85 
86 //Port Config, H = bits 8-15, L = bits 0-7. For example, a 2.5V, 10-bit ADC input has has type code = 0x0100. A 12-bit variant would be 0x0110
87 #define PCFG_ADC_TYPE 0x01 // ADC Input - ##### TYPE #####
88 #define PTYPE_ADC 0x0100
89 #define PCFG_ADC_PULLUP PCFG_IN_FL_PULLUP // Pull-up enabled
90 #define PCFG_ADC_PULLDOWN PCFG_IN_FL_PULLDOWN // Pull-down enabled
91 #define PCFG_ADC_2V5_10BIT 0x00 // 10-bit ADC port, using external 2.5V reference
92 #define PCFG_ADC_3V3_10BIT 0x01 // 10-bit ADC port, using internal 3.3V Avcc as reference
93 #define PCFG_ADC_2V5_12BIT 0x10 // 12-bit ADC port, using external 2.5V reference
94 #define PCFG_ADC_3V3_12BIT 0x11 // 12-bit ADC port, using internal 3.3V Avcc as reference
95 
96 #define PCFG_DIN_TYPE 0x02 // Digital input - ##### TYPE #####
97 #define PTYPE_DIN 0x0200 // Digital input - ##### TYPE #####
98 #define PCFG_DIN_PULLUP PCFG_IN_FL_PULLUP // Pull-up enabled
99 #define PCFG_DIN_PULLDOWN PCFG_IN_FL_PULLDOWN // Pull-down enabled
100 #define PCFG_DIN_3V3_IN 0x00 // 3V3 Digital input
101 #define PCFG_DIN_5V_IN 0x01 // 5V Digital input
102 
104 //UART Receive Types
105 #define PCFG_UART_RX_TYPE 0x03 // UART Input - ##### TYPE #####
106 #define PTYPE_UART_IN 0x0300
107 #define PCFG_UART_PULLUP PCFG_IN_FL_PULLUP // Pull-up enabled
108 #define PCFG_UART_PULLDOWN PCFG_IN_FL_PULLDOWN // Pull-down enabled
109 //Bits 0-3 gives UART number, can be 1-8
110 #define PCFG_UART_NUMER_1 0x00 // UART 1
111 #define PCFG_UART_NUMER_2 0x01 // UART 2
112 #define PCFG_UART_NUMER_3 0x02 // UART 3
113 #define PCFG_UART_NUMER_4 0x03 // UART 4
114 #define PCFG_UART_NUMER_5 0x04 // UART 5
115 #define PCFG_UART_NUMER_6 0x05 // UART 6
116 #define PCFG_UART_NUMER_7 0x06 // UART 7
117 #define PCFG_UART_NUMER_8 0x07 // UART 8
118 
120 //USART Input Types
121 #define PCFG_USART_RX_TYPE 0x04 // USART Input - ##### TYPE #####
122 #define PTYPE_USART_RX 0x0400
123 #define PCFG_USART_PULLUP PCFG_IN_FL_PULLUP // Pull-up enabled
124 #define PCFG_USART_PULLDOWN PCFG_IN_FL_PULLDOWN // Pull-down enabled
125 //Bits 0-3 gives USART number, can be 1-8
126 #define PCFG_USART_NUMER_1 0x00 // USART 1
127 #define PCFG_USART_NUMER_2 0x01 // USART 2
128 #define PCFG_USART_NUMER_3 0x02 // USART 3
129 #define PCFG_USART_NUMER_4 0x03 // USART 4
130 #define PCFG_USART_NUMER_5 0x04 // USART 5
131 #define PCFG_USART_NUMER_6 0x05 // USART 6
132 #define PCFG_USART_NUMER_7 0x06 // USART 7
133 #define PCFG_USART_NUMER_8 0x07 // USART 8
134 
136 //SPI Input Types
137 #define PCFG_SPI_SDI_TYPE 0x05 // SPI Data Input - ##### TYPE #####
138 #define PTYPE_SPI_SDI 0x0500
139 #define PCFG_SPI_SS_TYPE 0x06 // SPI Slave Select Input - ##### TYPE #####
140 #define PTYPE_SPI_SS 0x0600
141 #define PCFG_SPI_PULLUP PCFG_IN_FL_PULLUP // Pull-up enabled
142 #define PCFG_SPI_PULLDOWN PCFG_IN_FL_PULLDOWN // Pull-down enabled
143 //Bits 0-3 gives SPI number, can be 1-8
144 #define PCFG_SPI_NUMBER_1 0x00 // SPI 1
145 #define PCFG_SPI_NUMBER_2 0x01 // SPI 2
146 #define PCFG_SPI_NUMBER_3 0x02 // SPI 3
147 #define PCFG_SPI_NUMBER_4 0x03 // SPI 4
148 #define PCFG_SPI_NUMBER_5 0x04 // SPI 5
149 #define PCFG_SPI_NUMBER_6 0x05 // SPI 6
150 #define PCFG_SPI_NUMBER_7 0x06 // SPI 7
151 #define PCFG_SPI_NUMBER_8 0x07 // SPI 8
152 
153 
154 
156 //Outputs Types
157 
158 //Flags for all output types
159 #define PCFG_OUT_FL_OPEN_COLL 0x80 // Open Collector enabled Flag (can be ORed with other PCFG_xxx defines)
160 
161 //Outputs
162 #define PCFG_AOUT_TYPE 0x81 // Analog Output - ##### TYPE #####
163 #define PTYPE_AOUT 0x8100
164 #define PCFG_AOUT_3V3 0x00 // 3V3 Digital output
165 #define PCFG_AOUT_3V3_OC 0x01 // 3V3 Open Collector output. NOT 5V tolerant
166 #define PCFG_AOUT_5V 0x02 // 5V Digital output (push-pull)
167 #define PCFG_AOUT_5V_OC 0x03 // 5V tolerant Open Collector output
168 
169 #define PCFG_DOUT_TYPE 0x82 // Digital Out - ##### TYPE #####
170 #define PTYPE_DOUT 0x8200
171 #define PCFG_DOUT_3V3 0x00 // 3V3 Digital output
172 #define PCFG_DOUT_3V3_OC 0x01 // 3V3 Open Collector output. NOT 5V tolerant
173 #define PCFG_DOUT_5V 0x02 // 5V Digital output (push-pull)
174 #define PCFG_DOUT_5V_OC 0x03 // 5V tolerant Open Collector output
175 
176 #define PCFG_PWM_TYPE 0x83 // PWM Output - ##### TYPE #####
177 #define PTYPE_PWM 0x8300
178 #define PCFG_PWM_3V3_10BIT 0x00 // 3V3 Digital output, 10 bit
179 #define PCFG_PWM_3V3_OC_10BIT 0x01 // 3V3 Open COllector output, 10 bit. NOT 5V tolerant
180 #define PCFG_PWM_5V_10BIT 0x02 // 5V Digital output (push-pull), 10 bit
181 #define PCFG_PWM_5V_OC_10BIT 0x03 // 5V tolerant Open Collector output, 10 bit
182 #define PCFG_PWM_3V3_12BIT 0x10 // 3V3 Digital output, 12 bit
183 #define PCFG_PWM_3V3_OC_12BIT 0x11 // 3V3 Open COllector output, 12 bit. NOT 5V tolerant
184 #define PCFG_PWM_5V_12BIT 0x12 // 5V Digital output (push-pull), 12 bit
185 #define PCFG_PWM_5V_OC_12BIT 0x13 // 5V tolerant Open Collector output, 12 bit
186 
187 #define PCFG_VREFOUT_TYPE 0x84 // High impedance Reference output, for all PICs looked at this is RB10 pin - ##### TYPE #####
188 #define PTYPE_VREFOUT 0x8400
189 #define PCFG_VREFOUT_xxx 0x00 // Reference voltage is set to ?V
190 
192 //UART Output Types
193 #define PCFG_UART_OUT_TYPE 0x85 // UART Output - ##### TYPE #####
194 #define PTYPE_UART_OUT 0x8500
195 //Bits 0-3 gives UART number, can be 1-8. Use PCFG_UART_NUMBER_X defines
196 
198 //USART Output Types
199 #define PCFG_USART_OUT_TYPE 0x86 // USART Output - ##### TYPE #####
200 #define PTYPE_USART_OUT 0x8600
201 //Bits 0-3 gives USART number, can be 1-8. Use PCFG_USART_NUMBER_X defines
202 
204 //SPI Output Types
205 #define PCFG_SPI_SDO_TYPE 0x87 // SPI Data Output - ##### TYPE #####
206 #define PTYPE_SPI_SDO 0x8700
207 #define PCFG_SPI_CLK_TYPE 0x88 // SPI Clock Output - ##### TYPE #####
208 #define PTYPE_SPI_CLK 0x8800
209 //Bits 0-3 gives SPI number, can be 1-8. Use PCFG_SPI_NUMBER_X defines
210 
212 //I2C Types
213 #define PCFG_I2C_SDA_TYPE 0x89 // I2C Serial Data - ##### TYPE #####
214 #define PTYPE_I2C_SDA 0x8900
215 #define PCFG_I2C_SCL_TYPE 0x8A // I2C Serial Clock - ##### TYPE #####
216 #define PTYPE_I2C_SCL 0x8A00
217 //Bits 0-3 gives I2C number, can be 1-8.
218 #define PCFG_I2C_NUMBER_1 0x00 // I2C 1
219 #define PCFG_I2C_NUMBER_2 0x01 // I2C 2
220 #define PCFG_I2C_NUMBER_3 0x02 // I2C 3
221 #define PCFG_I2C_NUMBER_4 0x03 // I2C 4
222 #define PCFG_I2C_NUMBER_5 0x04 // I2C 5
223 #define PCFG_I2C_NUMBER_6 0x05 // I2C 6
224 #define PCFG_I2C_NUMBER_7 0x06 // I2C 7
225 #define PCFG_I2C_NUMBER_8 0x07 // I2C s8
226 
227 
228 extern const WORD TRIS_PORTID_BITADR_MAP[];
229 
230 extern const BYTE PORTID_UCPORT_MAP[];
231 
233 #define getUcPortNumber() ((sizeof(CFG_BLOCK_UC66_PORT) - sizeof(((CFG_BLOCK_UC66_PORT*)0)->reserve)) / sizeof(UCPORT_CONFIG))
234 #define UC_PORT_NUMBER ((sizeof(CFG_BLOCK_UC66_PORT) - sizeof(((CFG_BLOCK_UC66_PORT*)0)->reserve)) / sizeof(UCPORT_CONFIG))
235 
242 #define GET_UCPORT_INDEX(ele) (offsetof(CFG_BLOCK_UC66_PORT, ele) / sizeof(UCPORT_CONFIG))
243 
244 
246 typedef enum _UCPORT_CONFIG_ID
247 {
248  UCPORT_ID_A0 = 0, UCPORT_ID_A1, UCPORT_ID_A2, UCPORT_ID_A3, UCPORT_ID_A4, UCPORT_ID_A5, UCPORT_ID_A6, UCPORT_ID_A7,
249  UCPORT_ID_A8, UCPORT_ID_A9, UCPORT_ID_A10, UCPORT_ID_A11, UCPORT_ID_A12, UCPORT_ID_A13, UCPORT_ID_A14, UCPORT_ID_A15,
250 
251  UCPORT_ID_B0 = 16, UCPORT_ID_B1, UCPORT_ID_B2, UCPORT_ID_B3, UCPORT_ID_B4, UCPORT_ID_B5, UCPORT_ID_B6, UCPORT_ID_B7,
252  UCPORT_ID_B8, UCPORT_ID_B9, UCPORT_ID_B10, UCPORT_ID_B11, UCPORT_ID_B12, UCPORT_ID_B13, UCPORT_ID_B14, UCPORT_ID_B15,
253 
254  UCPORT_ID_C0 = 32, UCPORT_ID_C1, UCPORT_ID_C2, UCPORT_ID_C3, UCPORT_ID_C4, UCPORT_ID_C5, UCPORT_ID_C6, UCPORT_ID_C7,
255  UCPORT_ID_C8, UCPORT_ID_C9, UCPORT_ID_C10, UCPORT_ID_C11, UCPORT_ID_C12, UCPORT_ID_C13, UCPORT_ID_C14, UCPORT_ID_C15,
256 
257  UCPORT_ID_D0 = 48, UCPORT_ID_D1, UCPORT_ID_D2, UCPORT_ID_D3, UCPORT_ID_D4, UCPORT_ID_D5, UCPORT_ID_D6, UCPORT_ID_D7,
258  UCPORT_ID_D8, UCPORT_ID_D9, UCPORT_ID_D10, UCPORT_ID_D11, UCPORT_ID_D12, UCPORT_ID_D13, UCPORT_ID_D14, UCPORT_ID_D15,
259 
260  UCPORT_ID_E0 = 64, UCPORT_ID_E1, UCPORT_ID_E2, UCPORT_ID_E3, UCPORT_ID_E4, UCPORT_ID_E5, UCPORT_ID_E6, UCPORT_ID_E7,
261  UCPORT_ID_E8, UCPORT_ID_E9, UCPORT_ID_E10, UCPORT_ID_E11, UCPORT_ID_E12, UCPORT_ID_E13, UCPORT_ID_E14, UCPORT_ID_E15,
262 
263  UCPORT_ID_F0 = 80, UCPORT_ID_F1, UCPORT_ID_F2, UCPORT_ID_F3, UCPORT_ID_F4, UCPORT_ID_F5, UCPORT_ID_F6, UCPORT_ID_F7,
264  UCPORT_ID_F8, UCPORT_ID_F9, UCPORT_ID_F10, UCPORT_ID_F11, UCPORT_ID_F12, UCPORT_ID_F13, UCPORT_ID_F14, UCPORT_ID_F15,
265 
266  UCPORT_ID_G0 = 96, UCPORT_ID_G1, UCPORT_ID_G2, UCPORT_ID_G3, UCPORT_ID_G4, UCPORT_ID_G5, UCPORT_ID_G6, UCPORT_ID_G7,
267  UCPORT_ID_G8, UCPORT_ID_G9, UCPORT_ID_G10, UCPORT_ID_G11, UCPORT_ID_G12, UCPORT_ID_G13, UCPORT_ID_G14, UCPORT_ID_G15,
269 
270 #define UCPORT_ID_MAX UCPORT_ID_G15
271 
272 typedef struct __attribute__((__packed__)) _PCFG_DIN
273 {
274  BYTE id;
275  BYTE type;
276  BYTE typeConf;
277  BYTE param[2];
278  struct
279  {
280  unsigned char bFill : 6;
281  unsigned char bPulldown : 1;
282  unsigned char bPullup : 1;
283  } flags;
285 
286 typedef struct __attribute__((__packed__)) _PCFG_DOUT
287 {
288  BYTE id;
289  BYTE type;
290  BYTE typeConf;
291  BYTE param[2];
292  struct
293  {
294  unsigned char bFill : 6;
295  unsigned char bOpenCollector : 1;
296  unsigned char bDefault : 1;
297  } flags;
299 
304 typedef union __attribute__((__packed__)) _UCPORT_CONFIG
305 {
306  BYTE arr[6];
307 
308  //General structure, param[0] is typeConf
309  struct {
310  BYTE id;
311  BYTE type;
312  BYTE typeConf;
313  //Additional parameters, for example default value of a output port, pull-up ad pull-down resistors, open collector output....
314  BYTE param[3];
315  } gen;
316 
317  UCPORT_CONFIG_DOUT dout; //Digital output = PCFG_DOUT_TYPE
318 
319  UCPORT_CONFIG_DIN din; //Digital input = PCFG_DIN_TYPE
320 } UCPORT_CONFIG;
321 
322 
326 typedef struct __attribute__((__packed__))
327 {
328  BYTE label;
329 } IOPORT_CONFIG;
330 
331 
352 typedef struct __attribute__((__packed__))
353 {
354  UCPORT_CONFIG B0;
355  UCPORT_CONFIG B1;
356  UCPORT_CONFIG B2;
357  UCPORT_CONFIG B3;
358  UCPORT_CONFIG B4;
359  UCPORT_CONFIG B5;
360  UCPORT_CONFIG B6;
361  UCPORT_CONFIG B7;
362  UCPORT_CONFIG B8;
363  UCPORT_CONFIG B9;
364  UCPORT_CONFIG B10;
365  UCPORT_CONFIG B11;
366  UCPORT_CONFIG B12;
367  UCPORT_CONFIG B13;
368  UCPORT_CONFIG B14;
369  UCPORT_CONFIG B15;
370 
371  UCPORT_CONFIG D0;
372  UCPORT_CONFIG D1;
373  UCPORT_CONFIG D2;
374  UCPORT_CONFIG D3;
375  UCPORT_CONFIG D6;
376  UCPORT_CONFIG D7;
377  UCPORT_CONFIG D8;
378  UCPORT_CONFIG D9;
379  UCPORT_CONFIG D10;
380 
381  UCPORT_CONFIG E2;
382  UCPORT_CONFIG E3;
383  UCPORT_CONFIG E4;
384  UCPORT_CONFIG E5;
385  UCPORT_CONFIG E6;
386  UCPORT_CONFIG E7;
387 
388  UCPORT_CONFIG F0;
389  UCPORT_CONFIG F1;
390  UCPORT_CONFIG F3;
391  UCPORT_CONFIG F4;
392  UCPORT_CONFIG F5;
393 
394  UCPORT_CONFIG G6;
395  UCPORT_CONFIG G7;
396  UCPORT_CONFIG G8;
397  UCPORT_CONFIG G9;
398 
399  BYTE reserve[12];
401 
402 
406 typedef struct __attribute__((__packed__))
407 {
408  IOPORT_CONFIG P00;
409  IOPORT_CONFIG P01;
410  IOPORT_CONFIG P02;
411  IOPORT_CONFIG P03;
412  IOPORT_CONFIG P04;
413  IOPORT_CONFIG P05;
414  IOPORT_CONFIG P06;
415  IOPORT_CONFIG P07;
416  IOPORT_CONFIG P08;
417  IOPORT_CONFIG P09;
418  IOPORT_CONFIG P10;
419  IOPORT_CONFIG P11;
420  IOPORT_CONFIG P12;
421  IOPORT_CONFIG P13;
422  IOPORT_CONFIG P14;
423  IOPORT_CONFIG P15;
424  IOPORT_CONFIG P16;
425  IOPORT_CONFIG P17;
426  IOPORT_CONFIG P18;
427  IOPORT_CONFIG P19;
428  IOPORT_CONFIG P20;
429  IOPORT_CONFIG P21;
430  IOPORT_CONFIG P22;
431  IOPORT_CONFIG P23;
432  IOPORT_CONFIG P24;
433  IOPORT_CONFIG P25;
434  IOPORT_CONFIG P26;
435  IOPORT_CONFIG P27;
436  IOPORT_CONFIG P28;
437  IOPORT_CONFIG P29;
438  IOPORT_CONFIG P30;
439  IOPORT_CONFIG P31;
440  IOPORT_CONFIG P32;
441  IOPORT_CONFIG P33;
442  IOPORT_CONFIG P34;
443  IOPORT_CONFIG P35;
444  IOPORT_CONFIG P36;
445  IOPORT_CONFIG P37;
446  IOPORT_CONFIG P38;
447  IOPORT_CONFIG P39;
448  IOPORT_CONFIG P40;
449  IOPORT_CONFIG P41;
450 
451  BYTE reserve[18];
453 
454 
455 
457 #define UCPORT_PROP_NA_VAL 0xffffffff
458 #define UCPORT_PROP_NA 0x80000000
459 #define UCPORT_PROP_DIG_IN 0x00000001
460 #define UCPORT_PROP_DIG_OUT 0x00000002
461 #define UCPORT_PROP_ANALOG_IN 0x00000004
462 #define UCPORT_PROP_OPEN_COL 0x00000008
463 #define UCPORT_PROP_RP 0x00000010
464 #define UCPORT_PROP_RPI 0x00000020
465 #define UCPORT_PROP_PULLUP 0x00000040
466 #define UCPORT_PROP_PULLDOWN 0x00000080
467 #define UCPORT_PROP_5V 0x00000100
468 #define UCPORT_PROP_SDA 0x00000200
469 #define UCPORT_PROP_SCL 0x00000400
470 #define UCPORT_PROP_INT 0x00000800
471 
472 //#define UCPORT_PROP_ANALOG_OUT 0x00000000 ///< Analog Output
473 //#define UCPORT_PROP_INT 0x00000000 ///< Interrupt Input
474 //#define UCPORT_PROP_T1CK 0x00000000 ///< Timer 3 Clock
475 
480 typedef struct __attribute__((__packed__))
481 {
482  DWORD_VAL prop;
483 } UCPORT_PROP;
484 
486 typedef struct __attribute__((__packed__))
487 {
488  // Contains the index for (UCPORT_INDEX_NA = not available):
489  // - The UCPORT_PROP element in the TABLE_BLOCK_UC66_PORT structure
490  // - The UCPORT_CONFIG element in the CFG_BLOCK_UC66_PORT structure
491  // To get the UCPORT_CONFIG structure in CFG_BLOCK_UC66_PORT (cfgStruct.ucPort) for this
492  // IO Port, use the following code:
493  // UCPORT_CONFIG ucport
494  // if (index != 0xff)
495  // cfgGetDfltArray(offsetof(CFG_STRUCT, ucPort) + (sizeof(UCPORT_CONFIG) * index), ((BYTE*)&ucport), sizeof(UCPORT_CONFIG));
496  BYTE ucPortIndex;
497 
500  BYTE name[3];
501 } IOPORT_PROP;
502 
503 
523 typedef struct __attribute__((__packed__))
524 {
525  UCPORT_PROP B0;
526  UCPORT_PROP B1;
527  UCPORT_PROP B2;
528  UCPORT_PROP B3;
529  UCPORT_PROP B4;
530  UCPORT_PROP B5;
531  UCPORT_PROP B6;
532  UCPORT_PROP B7;
533  UCPORT_PROP B8;
534  UCPORT_PROP B9;
535  UCPORT_PROP B10;
536  UCPORT_PROP B11;
537  UCPORT_PROP B12;
538  UCPORT_PROP B13;
539  UCPORT_PROP B14;
540  UCPORT_PROP B15;
541 
542  UCPORT_PROP D0;
543  UCPORT_PROP D1;
544  UCPORT_PROP D2;
545  UCPORT_PROP D3;
546  UCPORT_PROP D6;
547  UCPORT_PROP D7;
548  UCPORT_PROP D8;
549  UCPORT_PROP D9;
550  UCPORT_PROP D10;
551 
552  UCPORT_PROP E2;
553  UCPORT_PROP E3;
554  UCPORT_PROP E4;
555  UCPORT_PROP E5;
556  UCPORT_PROP E6;
557  UCPORT_PROP E7;
558 
559  UCPORT_PROP F0;
560  UCPORT_PROP F1;
561  UCPORT_PROP F3;
562  UCPORT_PROP F4;
563  UCPORT_PROP F5;
564 
565  UCPORT_PROP G6;
566  UCPORT_PROP G7;
567  UCPORT_PROP G8;
568  UCPORT_PROP G9;
569 
570  BYTE reserve[13];
572 
573 
577 typedef struct __attribute__((__packed__))
578 {
579  IOPORT_PROP P00;
580  IOPORT_PROP P01;
581  IOPORT_PROP P02;
582  IOPORT_PROP P03;
583  IOPORT_PROP P04;
584  IOPORT_PROP P05;
585  IOPORT_PROP P06;
586  IOPORT_PROP P07;
587  IOPORT_PROP P08;
588  IOPORT_PROP P09;
589  IOPORT_PROP P10;
590  IOPORT_PROP P11;
591  IOPORT_PROP P12;
592  IOPORT_PROP P13;
593  IOPORT_PROP P14;
594  IOPORT_PROP P15;
595  IOPORT_PROP P16;
596  IOPORT_PROP P17;
597  IOPORT_PROP P18;
598  IOPORT_PROP P19;
599  IOPORT_PROP P20;
600  IOPORT_PROP P21;
601  IOPORT_PROP P22;
602  IOPORT_PROP P23;
603  IOPORT_PROP P24;
604  IOPORT_PROP P25;
605  IOPORT_PROP P26;
606  IOPORT_PROP P27;
607  IOPORT_PROP P28;
608  IOPORT_PROP P29;
609  IOPORT_PROP P30;
610  IOPORT_PROP P31;
611  IOPORT_PROP P32;
612  IOPORT_PROP P33;
613  IOPORT_PROP P34;
614  IOPORT_PROP P35;
615  IOPORT_PROP P36;
616  IOPORT_PROP P37;
617  IOPORT_PROP P38;
618  IOPORT_PROP P39;
619  IOPORT_PROP P40;
620  IOPORT_PROP P41;
621 
622  BYTE reserve[20];
624 
625 #endif
626