32 #ifdef P_R_O_T_O_T_Y_P_E_S
33 extern int placev_(integer *osbuf, integer *osptr, integer *oslen, integer *obound, integer *vwin, integer *af, integer *lframe, integer *minwin, integer *maxwin, integer *dvwinl, integer *dvwinh);
112 int placev_(integer *osbuf, integer *osptr, integer *oslen,
113 integer *obound, integer *vwin, integer *af, integer *lframe, integer
114 *minwin, integer *maxwin, integer *dvwinl, integer *dvwinh)
121 integer i__, q, osptr1, hrange, lrange;
202 i__1 = vwin[((*af - 1) << 1) + 2] + 1, i__2 = (*af - 2) * *lframe + 1;
203 lrange = max(i__1,i__2);
204 hrange = *af * *lframe;
206 for (osptr1 = *osptr - 1; osptr1 >= 1; --osptr1) {
207 if (osbuf[osptr1] <= hrange) {
214 if (osptr1 <= 1 || osbuf[osptr1 - 1] < lrange) {
216 i__1 = vwin[((*af - 1) << 1) + 2] + 1;
217 vwin[(*af << 1) + 1] = max(i__1,*dvwinl);
218 vwin[(*af << 1) + 2] = vwin[(*af << 1) + 1] + *maxwin - 1;
223 for (q = osptr1 - 1; q >= 1; --q) {
224 if (osbuf[q] < lrange) {
233 for (i__ = q + 1; i__ <= i__1; ++i__) {
234 if (osbuf[i__] - osbuf[q] >= *minwin) {
242 i__1 = (*af - 1) * *lframe, i__2 = lrange + *minwin - 1;
243 if (! crit && osbuf[q] > max(i__1,i__2)) {
244 vwin[(*af << 1) + 2] = osbuf[q] - 1;
246 i__1 = lrange, i__2 = vwin[(*af << 1) + 2] - *maxwin + 1;
247 vwin[(*af << 1) + 1] = max(i__1,i__2);
251 vwin[(*af << 1) + 1] = osbuf[q];
257 if (osbuf[q] > vwin[(*af << 1) + 1] + *maxwin) {
260 if (osbuf[q] < vwin[(*af << 1) + 1] + *minwin) {
263 vwin[(*af << 1) + 2] = osbuf[q] - 1;
268 i__1 = vwin[(*af << 1) + 1] + *maxwin - 1;
269 vwin[(*af << 1) + 2] = min(i__1,hrange);