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

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

Point of no return.

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