#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %EXTERNALINTEGERFN IAND(%INTEGERNAME A,B)
int IAND(int *A, int *B) {
// 2 %RESULT=A&B
return *A & *B;
// 3 %END
} /* end of IAND */
// 4 %EXTERNALINTEGERFN IOR(%INTEGERNAME A,B)
int IOR(int *A, int *B) {
// 5 %RESULT=A!B
return *A | *B;
// 6 %END
} /* end of IOR */
// 7 %EXTERNALINTEGERFN IEOR(%INTEGERNAME A,B)
int IEOR(int *A, int *B) {
// 8 %RESULT=A!!B
return *A ^ *B;
// 9 %END
} /* end of IEOR */
// 10 %EXTERNALINTEGERFN NOT(%INTEGERNAME A)
int NOT(int *A) {
// 11 %RESULT=\A
return (~*A);
// 12 %END
} /* end of NOT */
// 13 %EXTERNALINTEGERFN ISHFT(%INTEGERNAME A,B)
int ISHFT(int *A, int *B) {
// 14 %IF B>0 %THEN %RESULT=A<<B %ELSE %RESULT=A>>(-B)
if (*B <= 0) goto L_0001;
return *A << *B;
L_0001:;
return (unsigned int)*A >> -*B;
// 15 %END
} /* end of ISHFT */
// 16 %EXTERNALINTEGERFNSPEC RETURNCODE
extern int RETURNCODE(void);
// 17 %EXTERNALINTEGERFN SUCESS(%INTEGERNAME DUMMY)
int SUCESS(int *DUMMY) {
// 18 %RESULT=RETURNCODE
return RETURNCODE();
// 19 %END
} /* end of SUCESS */
// ?DUMMY unused
// 20 %ENDOFFILE