MIDAS
Loading...
Searching...
No Matches
ccusb.h
Go to the documentation of this file.
1#ifndef _CCUSB_INCLUDE_H
2#define _CCUSB_INCLUDE_H
3
4#include <stdio.h>
5#include <string.h>
6
7#define D16 0x0000
8#define D24 0x4000
9#define RNAFD16(n,a,f) (D16 | (n<<9) | (a<<5) | f)
10#define RNAFD24(n,a,f) (D24 | (n<<9) | (a<<5) | f)
11#define MARKER (D16 | (0<<9) | (0<<5) | 16)
12#define RD16 1
13#define MRAD16 2
14#define MRND16 3
15#define RD24 11
16#define MRAD24 12
17#define MRND24 13
18#define CD16 21
19#define WMARKER 50
20
21//
22//---------------------------------------------------------------------
36int StackFill(int mode, int n, int a, int f, int d, long int *stack) {
37
38 int lvar=0;
39
40 // New entry
41 switch (mode) {
42 case RD16: // Read
43 case CD16: // Command (same as read)
44 stack[0] += 1; lvar = stack[0];
45 stack[lvar] = RNAFD16(n, a, f);
46 break;
47 case MRAD16:
48 for (int i=0;i<d;i++) {
49 int aa = a+i;
50 stack[0] += 1; lvar = stack[0];
51 stack[lvar] = RNAFD16(n, aa, f);
52 }
53 break;
54 case MRND16:
55 for (int i=0;i<d;i++) {
56 int nn = n+i;
57 stack[0] += 1; lvar = stack[0];
58 stack[lvar] = RNAFD16(nn, a, f);
59 }
60 break;
61 case RD24:
62 stack[0] += 1; lvar = stack[0];
63 stack[lvar] = RNAFD24(n, a, f);
64 break;
65 case MRAD24:
66 for (int i=0;i<d;i++) {
67 int aa = a+i;
68 stack[0] += 1; lvar = stack[0];
69 stack[lvar] = RNAFD24(n, aa, f);
70 }
71 break;
72 case MRND24:
73 for (int i=0;i<d;i++) {
74 int nn = n+i;
75 stack[0] += 1; lvar = stack[0];
76 stack[lvar] = RNAFD24(nn, a, f);
77 }
78 break;
79 case WMARKER:
80 stack[0] += 1; lvar = stack[0];
81 stack[lvar] = MARKER;
82 stack[0] += 1; lvar = stack[0];
83 stack[lvar] = d;
84 break;
85 default:
86 break;
87 }
88
89 return stack[0];
90}
91
92//
93//---------------------------------------------------------------------
97void StackCreate(long int *stack) {
98 stack[0] = 0;
99}
100
101//
102//---------------------------------------------------------------------
106void StackClose(long int *stack) {
107 // nothing to do for now
108}
109
110#endif // _CCUSB_INCLUDE_H
#define RD24
Read D24.
Definition ccusb.h:15
#define MRND24
Multiple Read on N D24.
Definition ccusb.h:17
#define MARKER
Definition ccusb.h:11
#define CD16
Command D16.
Definition ccusb.h:18
void StackCreate(long int *stack)
Definition ccusb.h:97
#define MRAD24
Multiple Read on A D24.
Definition ccusb.h:16
#define RNAFD24(n, a, f)
Macro for Read D24.
Definition ccusb.h:10
#define RNAFD16(n, a, f)
Macro for Read D16.
Definition ccusb.h:9
#define MRND16
Multiple Read on N D16.
Definition ccusb.h:14
int StackFill(int mode, int n, int a, int f, int d, long int *stack)
Stack builder.
Definition ccusb.h:36
#define RD16
Read D16.
Definition ccusb.h:12
#define MRAD16
Multiple Read on A D16.
Definition ccusb.h:13
#define WMARKER
Marker.
Definition ccusb.h:19
void StackClose(long int *stack)
Definition ccusb.h:106
DWORD n[4]
Definition mana.cxx:247
INT i
Definition mdump.cxx:32
double d
Definition system.cxx:1311