#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %recordformat stackfm( %string(255) idname,
struct STACKFM {
union {
struct {
_imp_string255 IDNAME;
int VARNO;
unsigned char AFORM;
unsigned char BASE;
unsigned char TYPE;
unsigned char FORM;
unsigned char SCOPE;
unsigned char DIM;
int DISP;
int EXTDISP;
int FORMAT;
int SIZE;
int PBASE;
int EXTRA;
};
};
};
// 3+ %integer var no,
// 4+ %byteinteger aform, base,
// 5+ %byteinteger type, form, scope, dim,
// 6+ %integer disp, extdisp,
// 7+ format, size, pbase, extra )
// 8
// 9 %record(stackfm) lhs,rhs
struct STACKFM LHS;
struct STACKFM RHS;
// 10
// 11 %routine swap
void SWAP(void) {
// 12 %record(stackfm) temp
struct STACKFM TEMP;
// 13 temp = lhs
TEMP = LHS;
// 14 lhs = rhs
LHS = RHS;
// 15 rhs = temp
RHS = TEMP;
// 16 %end { of "swap" }
return;
} /* end of SWAP */
// 17
// 18 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}