source: buchla-68k/ram/chgsef.c@ 39a696b

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

Added include files for global functions and variables.

  • Property mode set to 100644
File size: 3.6 KB
Line 
1/*
2 =============================================================================
3 chgsef.c -- MIDAS-VII -- change score direction
4 Version 1 -- 1988-08-01 -- D.N. Lynx Crowe
5 =============================================================================
6*/
7
8#include "all.h"
9
10extern void rslice(struct gdsel *gdstb[]);
11extern void se_disp(struct s_entry *ep, int16_t sd, struct gdsel *gdstb[], int16_t cf);
12
13extern int16_t sd;
14extern int16_t se;
15
16extern struct gdsel *gdstbc[];
17extern struct gdsel *gdstbn[];
18extern struct gdsel *gdstbp[];
19
20/*
21
22*/
23
24/*
25 =============================================================================
26 chgsef() -- change execution pointers to D_FWD
27 =============================================================================
28*/
29
30void chgsef(void)
31{
32 register struct s_entry *ep;
33 register int32_t rt;
34
35 se = D_FWD;
36
37 ep = p_cur;
38 rt = t_cur;
39
40 if (EV_FINI NE ep->e_type) {
41
42 ep = ep->e_fwd;
43
44 while (ep->e_time EQ rt) {
45
46 if (EV_FINI EQ ep->e_type)
47 break;
48
49 se_exec(ep, se);
50 ep = ep->e_fwd;
51 }
52
53 p_cur = ep;
54 }
55}
56
57/*
58 =============================================================================
59 chgseb() -- change execution pointers to D_BAK
60 =============================================================================
61*/
62
63void chgseb(void)
64{
65 register struct s_entry *ep;
66 register int32_t rt;
67
68 se = D_BAK;
69
70 ep = p_cur;
71 rt = t_cur;
72
73 if (EV_SCORE NE ep->e_type) {
74
75 ep = ep->e_bak;
76
77 while (ep->e_time EQ rt) {
78
79 if (EV_SCORE EQ ep->e_type)
80 break;
81
82 se_exec(ep, se);
83 ep = ep->e_bak;
84 }
85
86 p_cur = ep;
87 }
88}
89
90/*
91 =============================================================================
92 chgsdf() -- change display pointers to D_FWD
93 =============================================================================
94*/
95
96void chgsdf(void)
97{
98 register struct s_entry *ep;
99 register int32_t rt;
100
101 sd = D_FWD;
102
103 rslice(gdstbc);
104 rslice(gdstbn);
105 rslice(gdstbp);
106
107 ep = p_ctr;
108 rt = t_ctr;
109
110 if (EV_FINI NE ep->e_type) {
111
112 ep = ep->e_fwd;
113
114 while (ep->e_time EQ rt) {
115
116 if (EV_FINI EQ ep->e_type)
117 break;
118
119 se_disp(ep, D_FWD, gdstbc, 1);
120 ep = ep->e_fwd;
121 }
122
123 p_ctr = ep;
124 }
125
126 ep = p_bak;
127 rt = t_bak;
128
129 if (EV_FINI NE ep->e_type) {
130
131 ep = ep->e_fwd;
132
133 while (ep->e_time EQ rt) {
134
135 if (EV_FINI EQ ep->e_type)
136 break;
137
138 se_disp(ep, D_FWD, gdstbp, 0);
139 ep = ep->e_fwd;
140 }
141
142 p_bak = ep;
143 }
144
145 ep = p_fwd;
146 rt = t_fwd;
147
148 if (EV_FINI NE ep->e_type) {
149
150 ep = ep->e_fwd;
151
152 while (ep->e_time EQ rt) {
153
154 if (EV_FINI EQ ep->e_type)
155 break;
156
157 se_disp(ep, D_FWD, gdstbn, 0);
158 ep = ep->e_fwd;
159 }
160
161 p_fwd = ep;
162 }
163}
164
165/*
166 =============================================================================
167 chgsdb() -- change display pointers to D_BAK
168 =============================================================================
169*/
170
171void chgsdb(void)
172{
173 register struct s_entry *ep;
174 register int32_t rt;
175
176 sd = D_BAK;
177
178 rslice(gdstbc);
179 rslice(gdstbn);
180 rslice(gdstbp);
181
182 ep = p_ctr;
183 rt = t_ctr;
184
185 if (EV_SCORE NE ep->e_type) {
186
187 ep = ep->e_bak;
188
189 while (ep->e_time EQ rt) {
190
191 if (EV_SCORE EQ ep->e_type)
192 break;
193
194 se_disp(ep, D_BAK, gdstbc, 1);
195 ep = ep->e_bak;
196 }
197
198 p_ctr = ep;
199 }
200
201 ep = p_bak;
202 rt = t_bak;
203
204 if (EV_SCORE NE ep->e_type) {
205
206 ep = ep->e_bak;
207
208 while (ep->e_time EQ rt) {
209
210 if (EV_SCORE EQ ep->e_type)
211 break;
212
213 se_disp(ep, D_BAK, gdstbp, 0);
214 ep = ep->e_bak;
215 }
216
217 p_bak = ep;
218 }
219
220 ep = p_fwd;
221 rt = t_fwd;
222
223 if (EV_SCORE NE ep->e_type) {
224
225 ep = ep->e_bak;
226
227 while (ep->e_time EQ rt) {
228
229 if (EV_SCORE EQ ep->e_type)
230 break;
231
232 se_disp(ep, D_BAK, gdstbn, 0);
233 ep = ep->e_bak;
234 }
235
236 p_fwd = ep;
237 }
238}
239
Note: See TracBrowser for help on using the repository browser.