1: /*
2: * Copyright (c) 1980 Regents of the University of California.
3: * All rights reserved. The Berkeley software License Agreement
4: * specifies the terms and conditions for redistribution.
5: *
6: * @(#)traper_.c 5.2 6/7/85
7: *
8: * Full of Magic! DON'T CHANGE ANYTHING !!
9: *
10: * To use from f77:
11: * integer oldmsk, traper
12: * oldmsk = traper (mask)
13: * where:
14: * mask = 1 to trap integer overflow
15: * mask = 2 to trap floating underflow
16: * mask = 3 to trap both
17: * These 2 bits will be set into the PSW.
18: * The old state will be returned.
19: */
20:
21: long traper_(msk)
22: long *msk;
23: {
24: int old = 0;
25: #if vax
26: #define IOV_MASK 0140
27: int **s = &msk;
28: int psw;
29:
30: s -= 5;
31: psw = (int)*s;
32: old = (psw & IOV_MASK) >> 5;
33: psw = (psw & ~IOV_MASK) | ((*msk << 5) & IOV_MASK);
34: *s = (int *)psw;
35: #endif vax
36: return((long)old);
37: }
Defined functions
Defined macros