source: buchla-68k/ram/sqfield.c@ 7258c6a

Last change on this file since 7258c6a was 7258c6a, checked in by Thomas Lopatic <thomas@…>, 7 years ago

Use standard integer types.

  • Property mode set to 100644
File size: 5.2 KB
Line 
1/*
2 =============================================================================
3 sqfield.c -- MIDAS-VII sequence display field functions
4 Version 9 -- 1989-11-16 -- D.N. Lynx Crowe
5 =============================================================================
6*/
7
8#define DEBUGIT 0
9
10#include "stddefs.h"
11#include "hwdefs.h"
12#include "graphdef.h"
13#include "vsdd.h"
14#include "fields.h"
15#include "curpak.h"
16#include "patch.h"
17#include "macros.h"
18
19#include "midas.h"
20#include "ptdisp.h"
21
22#if DEBUGIT
23extern short debugsw;
24
25short debugqf = 1;
26#endif
27
28extern void (*xy_up)(void);
29extern void (*xy_dn)(void);
30extern void (*premove)(void);
31extern void (*pstmove)(void);
32extern int16_t (*curtype)(void);
33
34extern void select(void);
35extern void nokey(void);
36extern int16_t nonf(int16_t k);
37extern int16_t stdctp5(void);
38extern void cxkstd(void);
39extern void cykstd(void);
40extern void stdmkey(void);
41extern void stddkey(int16_t k);
42extern void stopsm(void);
43extern void smxupd(void);
44extern void sqyupd(void);
45extern void postcm(void);
46
47extern int16_t astat;
48extern int16_t cmfirst;
49extern int16_t cmtype;
50extern int16_t curhold;
51extern int16_t curslin;
52extern int16_t cvtime;
53extern int16_t cvwait;
54extern int16_t ncvwait;
55extern int16_t sqdeflg;
56extern int16_t stccol;
57extern int16_t ss_ptsw;
58extern int16_t ss_sqsw;
59extern int16_t syrate;
60extern int16_t tvcwval;
61extern int16_t vcwval;
62
63extern int16_t crate1[];
64
65extern struct selbox *csbp;
66extern struct selbox sqboxes[];
67
68extern struct seqent seqbuf;
69extern struct seqent seqtab[];
70
71extern int8_t sqdebuf[];
72
73void sqxkey(void);
74void sqekey(void);
75void sqmkey(void);
76void sqdkey(int16_t k);
77
78/*
79
80*/
81
82struct curpak sq_flds = {
83
84 stdctp5, /* curtype */
85 nokey, /* premove */
86 postcm, /* pstmove */
87 cxkstd, /* cx_key */
88 cykstd, /* cy_key */
89 smxupd, /* cx_upd */
90 sqyupd, /* cy_upd */
91 stopsm, /* xy_up */
92 nokey, /* xy_dn */
93 sqxkey, /* x_key */
94 sqekey, /* e_key */
95 sqmkey, /* m_key */
96 sqdkey, /* d_key */
97 nonf, /* not_fld */
98 (struct fet *)NULL, /* curfet */
99 sqboxes, /* csbp */
100 crate1, /* cratex */
101 crate1, /* cratey */
102 CT_SMTH, /* cmtype */
103 CTOX(2), /* cxval */
104 RTOY(DATAROW) /* cyval */
105};
106
107/*
108
109*/
110
111/*
112 =============================================================================
113 sqmkey() -- M key processing for the sequence display
114 =============================================================================
115*/
116
117void sqmkey(void)
118{
119 register int16_t nc;
120
121 if (astat) {
122
123 if (stccol EQ 48) {
124
125 if (ss_ptsw EQ 0) {
126
127 (*xy_dn)(); /* handle KEY_DOWN functions */
128
129 (*premove)(); /* handle PRE-MOVE functions */
130
131 nc = (*curtype)(); /* get new CURSOR TYPE wanted */
132
133 cvtime = syrate;
134 ncvwait = curhold;
135
136 ss_sqsw = -1;
137 cmtype = nc;
138 cvwait = 1;
139 }
140
141 } else
142 stdmkey();
143
144 } else {
145
146 if (stccol EQ 48) {
147
148 ss_sqsw = 0;
149 cvwait = 1;
150 ncvwait = cvtime;
151 cmfirst = TRUE;
152
153 if (ss_ptsw EQ 0)
154 (*xy_up)();
155
156 (*pstmove)(); /* handle POST-MOVE functions */
157
158 } else
159 stdmkey();
160 }
161}
162
163/*
164
165*/
166
167/*
168 =============================================================================
169 sqekey() -- E key processing for the sequence display
170 =============================================================================
171*/
172
173void sqekey(void)
174{
175 register int16_t nc;
176
177 if (astat) {
178
179 if (stccol EQ 48) {
180
181 if (ss_ptsw EQ 0) {
182
183 (*xy_dn)(); /* handle KEY_DOWN functions */
184
185 (*premove)(); /* handle PRE-MOVE functions */
186
187 nc = (*curtype)(); /* get new CURSOR TYPE wanted */
188
189 cvtime = syrate;
190 ncvwait = curhold;
191
192 ss_sqsw = 1;
193 cmtype = nc;
194 cvwait = 1;
195 }
196
197 } else
198 select();
199
200 } else {
201
202 if (stccol EQ 48) {
203
204 ss_sqsw = 0;
205 cvwait = 1;
206 ncvwait = cvtime;
207 cmfirst = TRUE;
208
209 if (ss_ptsw EQ 0)
210 (*xy_up)();
211
212 (*pstmove)(); /* handle POST-MOVE functions */
213
214 } else
215 select();
216 }
217}
218
219/*
220
221*/
222
223/*
224 =============================================================================
225 sqxkey() -- delete key handler
226 =============================================================================
227*/
228
229void sqxkey(void)
230{
231 if (NOT astat)
232 return;
233
234 if (inrange(stccol, 2, 4)) {
235
236 memsetw(&seqbuf, 0, NSEQW);
237 memsetw(&seqtab[curslin], 0, NSEQW);
238 dsqlin(sqdebuf, curslin);
239 sqdeflg = TRUE;
240 dcursq();
241
242 } else if (inrange(stccol, 12, 22)) {
243
244 seqtab[curslin].seqact1 = 0;
245 seqtab[curslin].seqdat1 = 0;
246 memcpyw(&seqbuf, &seqtab[curslin], NSEQW);
247 dsqlin(sqdebuf, curslin);
248 sqdeflg = TRUE;
249 dcursq();
250
251 } else if (inrange(stccol, 24, 34)) {
252
253 seqtab[curslin].seqact2 = 0;
254 seqtab[curslin].seqdat2 = 0;
255 memcpyw(&seqbuf, &seqtab[curslin], NSEQW);
256 dsqlin(sqdebuf, curslin);
257 sqdeflg = TRUE;
258 dcursq();
259
260 } else if (inrange(stccol, 36, 46)) {
261
262 seqtab[curslin].seqact3 = 0;
263 seqtab[curslin].seqdat3 = 0;
264 memcpyw(&seqbuf, &seqtab[curslin], NSEQW);
265 dsqlin(sqdebuf, curslin);
266 sqdeflg = TRUE;
267 dcursq();
268 }
269}
270
271/*
272
273*/
274
275/*
276 =============================================================================
277 sqfield() -- setup field routines for the sequence editor
278 =============================================================================
279*/
280
281void sqfield(void)
282{
283
284#if DEBUGIT
285 if (debugsw AND debugqf)
286 printf("sqfield(): ENTRY\n");
287#endif
288
289 curset(&sq_flds);
290
291#if DEBUGIT
292 if (debugsw AND debugqf)
293 printf("sqfield(): EXIT\n");
294#endif
295
296}
Note: See TracBrowser for help on using the repository browser.