source: buchla-68k/ram/sqfield.c@ 60288f5

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

Make function pointers more consistent.

  • 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 short (*curtype)(void);
33
34extern void select(void);
35extern void nokey(void);
36extern short nonf(short k);
37extern short stdctp5(void);
38extern void cxkstd(void);
39extern void cykstd(void);
40extern void stdmkey(void);
41extern void stddkey(short k);
42extern void stopsm(void);
43extern void smxupd(void);
44extern void sqyupd(void);
45extern void postcm(void);
46
47extern short astat;
48extern short cmfirst;
49extern short cmtype;
50extern short curhold;
51extern short curslin;
52extern short cvtime;
53extern short cvwait;
54extern short ncvwait;
55extern short sqdeflg;
56extern short stccol;
57extern short ss_ptsw;
58extern short ss_sqsw;
59extern short syrate;
60extern short tvcwval;
61extern short vcwval;
62
63extern short crate1[];
64
65extern struct selbox *csbp;
66extern struct selbox sqboxes[];
67
68extern struct seqent seqbuf;
69extern struct seqent seqtab[];
70
71extern char sqdebuf[];
72
73void sqxkey(void);
74void sqekey(void);
75void sqmkey(void);
76void sqdkey(short 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 short 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 short 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.