#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 !!%CONTROL 0
// 2 %BEGIN
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 3
// 4 %routine newpage
void NEWPAGE(void) {
// 5 printsymbol('L'&31)
_imp_PRINTSYMBOL(76 & 31);
// 6 %end
return;
} /* end of NEWPAGE */
// 7
// 8 %routine xreadsym(%integername sym)
void XREADSYM(int *SYM) {
// 9 readsymbol(sym) ; printsymbol(sym)
_imp_READSYMBOL(SYM);
_imp_PRINTSYMBOL(*SYM);
// 10 %end
return;
} /* end of XREADSYM */
// 11
// 12 %routine readsymbol(%integername sym)
void READSYMBOL(int *SYM) {
// 13 xreadsym(sym)
XREADSYM(SYM);
// 14 %end
return;
} /* end of READSYMBOL */
// 15
// 16 %routine xread(%integername num)
void XREAD(int *NUM) {
// 17 read(num) ; write(num,0)
_imp_READ(NUM);
_imp_WRITE(*NUM, 0);
// 18 %end
return;
} /* end of XREAD */
// 19
// 20 %routine read(%integername num)
void READ(int *NUM) {
// 21 xread(num)
XREAD(NUM);
// 22 %end
return;
} /* end of READ */
// 23
// 24 %INTEGERARRAY RMN,REG(0:15)
int RMN[16];
struct _imp_dv RMN_dv = {RMN, sizeof(int) /*, dims, <bounds> */};
int REG[16];
struct _imp_dv REG_dv = {REG, sizeof(int) /*, dims, <bounds> */};
// 25 %INTEGERARRAY IMN(1:31)
int IMN[31];
struct _imp_dv IMN_dv = {IMN, sizeof(int) /*, dims, <bounds> */};
// 26 %INTEGERARRAY LMN,LAD(1:20)
int LMN[20];
struct _imp_dv LMN_dv = {LMN, sizeof(int) /*, dims, <bounds> */};
int LAD[20];
struct _imp_dv LAD_dv = {LAD, sizeof(int) /*, dims, <bounds> */};
// 27 %INTEGERARRAY R(1:4000)
int R[4000];
struct _imp_dv R_dv = {R, sizeof(int) /*, dims, <bounds> */};
// 28 %INTEGERARRAY S(0:16383)
int S[16384];
struct _imp_dv S_dv = {S, sizeof(int) /*, dims, <bounds> */};
// 29 %INTEGER LP,RP,SP,I,J,K,L,M,N,F,MR,TR,ST,CT
int LP;
int RP;
int SP;
int I;
int J;
int K;
int L;
int M;
int N;
int F;
int MR;
int TR;
int ST;
int CT;
auto void READMN(int *MN, int *NEXT);
auto void FAULT(int I, int J, int K, int L);
auto void OUT(int I);
auto void DUMP(void);
// 30 %ROUTINESPEC READMN(%INTEGERNAME MN,NEXT)
// 31 %ROUTINESPEC FAULT(%INTEGER I,J,K,L)
// 32 %ROUTINESPEC OUT(%INTEGER I)
// 33 %ROUTINESPEC DUMP
// 34 %SWITCH INS(1:31)
int INS_index;
int INS_line;
char *INS_file;
static const void *INS[31] = {
&&case_INS_1, &&case_INS_2, &&case_INS_3, &&case_INS_4, &&case_INS_5, &&case_INS_6, &&case_INS_7,
&&case_INS_8, &&case_INS_9, &&case_INS_10, &&case_INS_11, &&case_INS_12, &&case_INS_13, &&case_INS_14,
&&case_INS_15, &&case_INS_16, &&case_INS_17, &&case_INS_18, &&case_INS_19, &&case_INS_20, &&case_INS_21,
&&case_INS_22, &&case_INS_23, &&case_INS_24, &&case_INS_25, &&case_INS_26, &&case_INS_27, &&case_INS_28,
&&case_INS_29, &&case_INS_30, &&case_INS_31};
// 35 %SWITCH IOR(0:10)
int IOR_index;
int IOR_line;
char *IOR_file;
static const void *IOR[11] = {&&case_IOR_0, &&case_IOR_1, &&case_IOR_2, &&case_IOR_3, &&case_IOR_4, &&case_IOR_5,
&&case_IOR_6, &&case_IOR_7, &&case_IOR_8, &&case_IOR_9, &&case_IOR_10};
// 36 !!%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
// 37 RMN(0)=M'BR0' ; RMN(1)=M'BR1' ; RMN(2)=M'BR2'
RMN[0] = 4346416;
RMN[1] = 4346417;
RMN[2] = 4346418;
// 38 RMN(3)=M'BR3' ; RMN(4)=M'BR4' ; RMN(5)=M'BR5'
RMN[3] = 4346419;
RMN[4] = 4346420;
RMN[5] = 4346421;
// 39 RMN(6)=M'BR6' ; RMN(7)=M'BR7' ; RMN(8)=M'BR8'
RMN[6] = 4346422;
RMN[7] = 4346423;
RMN[8] = 4346424;
// 40 RMN(9)=M'BR9' ; RMN(10)=M'BR10'; RMN(11)=M'BR11'
RMN[9] = 4346425;
RMN[10] = 1112682800;
RMN[11] = 1112682801;
// 41 RMN(12)=M'BR12'; RMN(13)=M'WK' ; RMN(14)=M'STP'
RMN[12] = 1112682802;
RMN[13] = 22347;
RMN[14] = 5461072;
// 42 RMN(15)=M'ACC'
RMN[15] = 4277059;
// 43 IMN(1)=M'LOAD' ; IMN(2)=M'LDA' ; IMN(3)=M'ADD'
IMN[0] = 1280262468;
IMN[1] = 4998209;
IMN[2] = 4277316;
// 44 IMN(4)=M'SUB' ; IMN(5)=M'MLT' ; IMN(6)=M'DIV'
IMN[3] = 5461314;
IMN[4] = 5065812;
IMN[5] = 4475222;
// 45 IMN(7)=M'EXP' ; IMN(8)=M'STR' ; IMN(9)=M'NEG'
IMN[6] = 4544592;
IMN[7] = 5461074;
IMN[8] = 5129543;
// 46 IMN(10)=M'NOT' ; IMN(11)=M'SHL' ; IMN(12)=M'SHR'
IMN[9] = 5132116;
IMN[10] = 5457996;
IMN[11] = 5458002;
// 47 IMN(13)=M'AND' ; IMN(14)=M'OR' ; IMN(15)=M'XOR'
IMN[12] = 4279876;
IMN[13] = 20306;
IMN[14] = 5787474;
// 48 IMN(16)=M'BAL' ; IMN(17)=M'B' ; IMN(18)=M'BZ'
IMN[15] = 4342092;
IMN[16] = 66;
IMN[17] = 16986;
// 49 IMN(19)=M'BNZ' ; IMN(20)=M'BG' ; IMN(21)=M'BNG'
IMN[18] = 4345434;
IMN[19] = 16967;
IMN[20] = 4345415;
// 50 IMN(22)=M'BL' ; IMN(23)=M'BNL' ; IMN(24)=M'STOP'
IMN[21] = 16972;
IMN[22] = 4345420;
IMN[23] = 1398034256;
// 51 IMN(25)=M'ADDF'; IMN(26)=M'SUBF'; IMN(27)=M'MLTF'
IMN[24] = 1094992966;
IMN[25] = 1398096454;
IMN[26] = 1296847942;
// 52 IMN(28)=M'DIVF'; IMN(29)=M'EXPF'; IMN(30)=M'NEGF'
IMN[27] = 1145656902;
IMN[28] = 1163415622;
IMN[29] = 1313163078;
// 53 IMN(31)=M'FLT'
IMN[30] = 4607060;
// 54 LP=1
LP = 1;
// 55 RP=1
RP = 1;
// 56 SP=0
SP = 0;
// 57 F=0
F = 0;
// 58 MR=0
MR = 0;
// 59 TR=0
TR = 0;
// 60 !! DEFINE('STREAM01,SKIMPO')
// 61 open input(1, "skimp77.asm")
_imp_OPENINPUT(1, _imp_str_literal("skimp77.asm"));
// 62 SELECT INPUT(1)
_imp_SELECTINPUT(1);
// 63 !!L1: READ SYMBOL(I)
// 64 L1: %begin
U_1000:;
{ /*%begin*/
// 65 %on %event 9 %start
if (!_imp_on_event(9)) goto L_0001;
// 66 print string("End of file reading skimp77.asm, not while executing it..."); newline
_imp_PRINTSTRING(_imp_str_literal("End of file reading skimp77.asm, not while executing it..."));
_imp_NEWLINE();
// 67 ! So what is supposed to signify end of the skimp assembly code?
// 68 %stop
_imp_stop(0);
// 69 %finish
L_0001:;
// 70 READ SYMBOL(I)
READSYMBOL(/*?*/ &I);
// 71 %end
goto end_1000;
end_1000:;
}
// 72 %if i = ';' %then %start
if (I != 59) goto L_0002;
// 73 %cycle ;! skip comments. comments with a '.' in them were causing errors.
L_0003:;
// 74 read symbol(i)
READSYMBOL(/*?*/ &I);
// 75 %repeat %until i = NL
if (I == 10) goto L_0004;
goto L_0003;
L_0004:;
// 76 ->L1
goto U_1000;
// 77 %finish
L_0002:;
// 78 %IF I='''' %THEN %START
if (I != 39) goto L_0005;
// 79 L10: READ SYMBOL(I)
U_1001:;
READSYMBOL(/*?*/ &I);
// 80 %IF I\='''' %THEN ->L10
if (I == 39) goto L_0006;
goto U_1001;
L_0006:;
// 81 ->L1 ; %FINISH
goto U_1000;
L_0005:;
// 82 %IF I\='.' %THEN ->L1
if (I == 46) goto L_0007;
goto U_1000;
L_0007:;
// 83 READMN(I,J)
READMN(/*?*/ &I, /*?*/ &J);
// 84 %IF J=':' %THEN %START
if (J != 58) goto L_0008;
// 85 %IF LP=1 %THEN ->L2
if (LP != 1) goto L_0009;
goto U_1002;
L_0009:;
// 86 K=1
K = 1;
// 87 L4: %IF I=LMN(K) %THEN %START
U_1003:;
if (I != LMN[K - 1]) goto L_000A;
// 88 %IF LAD(K)>=0 %THEN FAULT(M'LABE',M'L SE',M'T TW',M'ICE ')
if (LAD[K - 1] < 0) goto L_000B;
FAULT(1279345221, 1277186885, 1411404887, 1229145376);
L_000B:;
// 89 ->L3 ; %FINISH
goto U_1004;
L_000A:;
// 90 K=K+1
K = K + 1;
// 91 %IF K<LP %THEN ->L4
if (K >= LP) goto L_000C;
goto U_1003;
L_000C:;
// 92 %IF LP>20 %THEN %START
if (LP <= 20) goto L_000D;
// 93 FAULT(M'TOO ',M'MANY',M' LAB',M'ELS ')
FAULT(1414483744, 1296125529, 541868354, 1162629920);
// 94 ->L25 ; %FINISH
goto U_1005;
L_000D:;
// 95 L2: LMN(LP)=I
U_1002:;
LMN[LP - 1] = I;
// 96 K=LP
K = LP;
// 97 LP=LP+1
LP = LP + 1;
// 98 L3: LAD(K)=SP
U_1004:;
LAD[K - 1] = SP;
// 99 L25: %IF I=M'ST' %THEN %START
U_1005:;
if (I != 21332) goto L_000E;
// 100 ST=SP
ST = SP;
// 101 ->L18 ; %FINISH
goto U_1006;
L_000E:;
// 102 ->L1 ; %FINISH
goto U_1000;
L_0008:;
// 103 %IF J='=' %THEN %START
if (J != 61) goto L_000F;
// 104 READ(K)
READ(/*?*/ &K);
// 105 %IF K<0 %OR K>15 %THEN %START
if (K < 0) goto L_0010;
if (K <= 15) goto L_0011;
L_0010:;
// 106 FAULT(M'EQUA',M'TE N',M'UMBE',M'R ? ')
FAULT(1162958145, 1413816398, 1431126597, 1377845024);
// 107 ->L1 ; %FINISH
goto U_1000;
L_0011:;
// 108 RMN(K)=I
RMN[K] = I;
// 109 ->L1 ; %FINISH
goto U_1000;
L_000F:;
// 110 %IF I=M'REGS' %AND J=10 %THEN %START
if (I != 1380271955) goto L_0012;
if (J != 10) goto L_0012;
// 111 MR=MR!128
MR = MR | 128;
// 112 ->L1 ; %FINISH
goto U_1000;
L_0012:;
// 113 %IF I=M'TON' %AND J=10 %THEN %START
if (I != 5525326) goto L_0013;
if (J != 10) goto L_0013;
// 114 MR=MR!64
MR = MR | 64;
// 115 ->L1 ; %FINISH
goto U_1000;
L_0013:;
// 116 %IF I=M'TOFF' %AND J=10 %THEN %START
if (I != 1414481478) goto L_0014;
if (J != 10) goto L_0014;
// 117 MR=MR!32
MR = MR | 32;
// 118 ->L1 ; %FINISH
goto U_1000;
L_0014:;
// 119 %IF J\=',' %THEN FAULT(M'SYNT',M'AX ?',0,0)
if (J == 44) goto L_0015;
FAULT(1398361684, 1096294463, 0, 0);
L_0015:;
// 120 %IF I=0 %THEN %START
if (I != 0) goto L_0016;
// 121 READMN(I,J)
READMN(/*?*/ &I, /*?*/ &J);
// 122 %IF I\=0 %OR J\=',' %THEN FAULT(M'SYNT',M'AX ?',0,0)
if (I != 0) goto L_0017;
if (J == 44) goto L_0018;
L_0017:;
FAULT(1398361684, 1096294463, 0, 0);
L_0018:;
// 123 READMN(I,J)
READMN(/*?*/ &I, /*?*/ &J);
// 124 %IF I\=0 %OR J\=',' %THEN FAULT(M'SYNT',M'AX ?',0,0)
if (I != 0) goto L_0019;
if (J == 44) goto L_001A;
L_0019:;
FAULT(1398361684, 1096294463, 0, 0);
L_001A:;
// 125 %IF SP>=16384 %THEN %START
if (SP < 16384) goto L_001B;
// 126 FAULT(M'PROG',M'RAM ',M'TOO ',M'BIG ')
FAULT(1347571527, 1380011296, 1414483744, 1112098592);
// 127 %STOP ; %FINISH
_imp_stop(0);
L_001B:;
// 128 READ(S(SP))
READ(/*?*/ &S[SP]);
// 129 SP=SP+1
SP = SP + 1;
// 130 MR=0
MR = 0;
// 131 ->L1 ; %FINISH
goto U_1000;
L_0016:;
// 132 K=1
K = 1;
// 133 L6: %IF I=IMN(K) %THEN ->L5
U_1007:;
if (I != IMN[K - 1]) goto L_001C;
goto U_1008;
L_001C:;
// 134 K=K+1
K = K + 1;
// 135 %IF K<=31 %THEN ->L6
if (K > 31) goto L_001D;
goto U_1007;
L_001D:;
// 136 FAULT(M'INST',M'RUCT',M'ION ',M'? ')
FAULT(1229869908, 1381319508, 1229934112, 1059069984);
// 137 L5: READMN(I,J)
U_1008:;
READMN(/*?*/ &I, /*?*/ &J);
// 138 %IF J\=',' %THEN FAULT(M'SYNT',M'AX ?',0,0)
if (J == 44) goto L_001E;
FAULT(1398361684, 1096294463, 0, 0);
L_001E:;
// 139 %IF I=0 %THEN L=0 %ELSE %START
if (I != 0) goto L_001F;
L = 0;
goto L_0020;
L_001F:;
// 140 L=0
L = 0;
// 141 L8: %IF I=RMN(L) %THEN ->L7
U_1009:;
if (I != RMN[L]) goto L_0021;
goto U_100A;
L_0021:;
// 142 L=L+1
L = L + 1;
// 143 %IF L<=15 %THEN ->L8
if (L > 15) goto L_0022;
goto U_1009;
L_0022:;
// 144 FAULT(M'REGI',M'STER',M' ? ',0)
FAULT(1380271945, 1398031698, 541007904, 0);
// 145 %FINISH
L_0020:;
// 146 L7: K=K<<4!L
U_100A:;
K = K << 4 | L;
// 147 READMN(I,J)
READMN(/*?*/ &I, /*?*/ &J);
// 148 %IF J='+' %THEN %START
if (J != 43) goto L_0023;
// 149 READ(M)
READ(/*?*/ &M);
// 150 %IF M>=65536 %THEN FAULT(M'DISP',M'. TO',M'O BI',M'G ')
if (M < 65536) goto L_0024;
FAULT(1145656144, 773870671, 1327514185, 1193287712);
L_0024:;
// 151 %IF LP=1 %THEN ->L9
if (LP != 1) goto L_0025;
goto U_100B;
L_0025:;
// 152 L=1
L = 1;
// 153 L12: %IF I=LMN(L) %THEN %START
U_100C:;
if (I != LMN[L - 1]) goto L_0026;
// 154 %IF LAD(L)<0 %THEN ->L11
if (LAD[L - 1] >= 0) goto L_0027;
goto U_100D;
L_0027:;
// 155 K=K<<20!(LAD(L)+M)
K = K << 20 | LAD[L - 1] + M;
// 156 ->L13 ; %FINISH
goto U_100E;
L_0026:;
// 157 L=L+1
L = L + 1;
// 158 %IF L<LP %THEN ->L12
if (L >= LP) goto L_0028;
goto U_100C;
L_0028:;
// 159 %IF LP>20 %THEN %START
if (LP <= 20) goto L_0029;
// 160 FAULT(M'TOO ',M'MANY',M' LAB',M'ELS ')
FAULT(1414483744, 1296125529, 541868354, 1162629920);
// 161 ->L11 ; %FINISH
goto U_100D;
L_0029:;
// 162 L9: LMN(LP)=I
U_100B:;
LMN[LP - 1] = I;
// 163 LAD(LP)=-1
LAD[LP - 1] = -1;
// 164 L=LP
L = LP;
// 165 LP=LP+1
LP = LP + 1;
// 166 L11: %IF RP>4000 %THEN %START
U_100D:;
if (RP <= 4000) goto L_002A;
// 167 FAULT(M'TOO ',M'MANY',M' REL',M'OCS.')
FAULT(1414483744, 1296125529, 542262604, 1329812270);
// 168 %STOP ; %FINISH
_imp_stop(0);
L_002A:;
// 169 R(RP)=L<<16!SP
R[RP - 1] = L << 16 | SP;
// 170 RP=RP+1
RP = RP + 1;
// 171 L14: K=K<<20!M
U_100F:;
K = K << 20 | M;
// 172 L13: %IF SP>=16384 %THEN %START
U_100E:;
if (SP < 16384) goto L_002B;
// 173 FAULT(M'PROG',M'RAM ',M'TOO ',M'BIG ')
FAULT(1347571527, 1380011296, 1414483744, 1112098592);
// 174 %STOP ; %FINISH
_imp_stop(0);
L_002B:;
// 175 S(SP)=K!MR<<24
S[SP] = K | MR << 24;
// 176 SP=SP+1
SP = SP + 1;
// 177 MR=0
MR = 0;
// 178 ->L1 ; %FINISH
goto U_1000;
L_0023:;
// 179 %IF ('A'<=J %AND J<='Z') %OR J=10 %THEN %START
if (65 > J) goto L_002C;
if (J <= 90) goto L_002D;
L_002C:;
if (J != 10) goto L_002E;
L_002D:;
// 180 %IF I=M'READ' %AND J='S' %THEN %START
if (I != 1380270404) goto L_002F;
if (J != 83) goto L_002F;
// 181 M=16384
M = 16384;
// 182 L15: READMN(I,J)
U_1010:;
READMN(/*?*/ &I, /*?*/ &J);
// 183 %IF I\=M'YMBO' %OR J\='L' %THEN ->L26
if (I != 1498235471) goto L_0030;
if (J == 76) goto L_0031;
L_0030:;
goto U_1011;
L_0031:;
// 184 READ SYMBOL(I)
READSYMBOL(/*?*/ &I);
// 185 %IF I\=10 %THEN ->L26
if (I == 10) goto L_0032;
goto U_1011;
L_0032:;
// 186 ->L14 ; %FINISH
goto U_100F;
L_002F:;
// 187 %IF I=M'NEXT' %AND J='S' %THEN %START
if (I != 1313167444) goto L_0033;
if (J != 83) goto L_0033;
// 188 M=16385
M = 16385;
// 189 ->L15 ; %FINISH
goto U_1010;
L_0033:;
// 190 %IF I=M'SKIP' %AND J='S' %THEN %START
if (I != 1397442896) goto L_0034;
if (J != 83) goto L_0034;
// 191 M=16386
M = 16386;
// 192 ->L15 ; %FINISH
goto U_1010;
L_0034:;
// 193 %IF I=M'PRIN' %AND J='T' %THEN %START
if (I != 1347569998) goto L_0035;
if (J != 84) goto L_0035;
// 194 READ SYMBOL(I)
READSYMBOL(/*?*/ &I);
// 195 %IF I\='S' %THEN ->L26
if (I == 83) goto L_0036;
goto U_1011;
L_0036:;
// 196 M=16387
M = 16387;
// 197 ->L15 ; %FINISH
goto U_1010;
L_0035:;
// 198 %IF I=M'SPAC' %AND J='E' %THEN %START
if (I != 1397768515) goto L_0037;
if (J != 69) goto L_0037;
// 199 READMN(I,J)
READMN(/*?*/ &I, /*?*/ &J);
// 200 %IF I=0 %AND J=10 %THEN %START
if (I != 0) goto L_0038;
if (J != 10) goto L_0038;
// 201 M=16388
M = 16388;
// 202 ->L14 ; %FINISH
goto U_100F;
L_0038:;
// 203 %IF I='S' %AND J=10 %THEN %START
if (I != 83) goto L_0039;
if (J != 10) goto L_0039;
// 204 M=16389
M = 16389;
// 205 ->L14 ; %FINISH
goto U_100F;
L_0039:;
// 206 ->L26
goto U_1011;
// 207 %FINISH
L_0037:;
// 208 %IF I=M'NEWL' %AND J='I' %THEN %START
if (I != 1313167180) goto L_003A;
if (J != 73) goto L_003A;
// 209 READMN(I,J)
READMN(/*?*/ &I, /*?*/ &J);
// 210 %IF I=M'NE' %AND J=10 %THEN %START
if (I != 20037) goto L_003B;
if (J != 10) goto L_003B;
// 211 M=16390
M = 16390;
// 212 ->L14 ; %FINISH
goto U_100F;
L_003B:;
// 213 %IF I=M'NES' %AND J=10 %THEN %START
if (I != 5129555) goto L_003C;
if (J != 10) goto L_003C;
// 214 M=16391
M = 16391;
// 215 ->L14 ; %FINISH
goto U_100F;
L_003C:;
// 216 ->L26
goto U_1011;
// 217 %FINISH
L_003A:;
// 218 %IF I=M'NEWP' %AND J='A' %THEN %START
if (I != 1313167184) goto L_003D;
if (J != 65) goto L_003D;
// 219 READMN(I,J)
READMN(/*?*/ &I, /*?*/ &J);
// 220 %IF I\=M'GE' %OR J\=10 %THEN ->L26
if (I != 18245) goto L_003E;
if (J == 10) goto L_003F;
L_003E:;
goto U_1011;
L_003F:;
// 221 M=16392
M = 16392;
// 222 ->L14 ; %FINISH
goto U_100F;
L_003D:;
// 223 %IF I=M'READ' %AND J=10 %THEN %START
if (I != 1380270404) goto L_0040;
if (J != 10) goto L_0040;
// 224 M=16393
M = 16393;
// 225 ->L14 ; %FINISH
goto U_100F;
L_0040:;
// 226 %IF I=M'WRIT' %AND J='E' %THEN %START
if (I != 1465010516) goto L_0041;
if (J != 69) goto L_0041;
// 227 READ SYMBOL(I)
READSYMBOL(/*?*/ &I);
// 228 %IF I\=10 %THEN ->L26
if (I == 10) goto L_0042;
goto U_1011;
L_0042:;
// 229 M=16394
M = 16394;
// 230 ->L14 ; %FINISH
goto U_100F;
L_0041:;
// 231 L26: FAULT(M'I-O ',M'NAME',M' ? ',0)
U_1011:;
FAULT(1227706144, 1312902469, 541007904, 0);
// 232 ->L13
goto U_100E;
// 233 %FINISH
L_002E:;
// 234 %IF J\=',' %THEN FAULT(M'SYNT',M'AX ?',0,0)
if (J == 44) goto L_0043;
FAULT(1398361684, 1096294463, 0, 0);
L_0043:;
// 235 %IF I=0 %THEN L=0 %ELSE %START
if (I != 0) goto L_0044;
L = 0;
goto L_0045;
L_0044:;
// 236 L=0
L = 0;
// 237 L17: %IF I=RMN(L) %THEN ->L16
U_1012:;
if (I != RMN[L]) goto L_0046;
goto U_1013;
L_0046:;
// 238 L=L+1
L = L + 1;
// 239 %IF L<=15 %THEN ->L17
if (L > 15) goto L_0047;
goto U_1012;
L_0047:;
// 240 FAULT(M'BASE',M' REG',M'ISTE',M'R ? ')
FAULT(1111577413, 542262599, 1230197829, 1377845024);
// 241 %FINISH
L_0045:;
// 242 L16: K=K<<4!L
U_1013:;
K = K << 4 | L;
// 243 READ(M)
READ(/*?*/ &M);
// 244 %IF M>=65536 %THEN FAULT(M'DISP',M'. TO',M'O BI',M'G ')
if (M < 65536) goto L_0048;
FAULT(1145656144, 773870671, 1327514185, 1193287712);
L_0048:;
// 245 K=K<<16!M
K = K << 16 | M;
// 246 ->L13
goto U_100E;
// 247 L18: READ(I)
U_1006:;
READ(/*?*/ &I);
// 248 %IF I\=0 %THEN %START
if (I == 0) goto L_0049;
// 249 NEWLINE
_imp_NEWLINE();
// 250 OUT(M'PROG') ; OUT(M'RAM ') ; OUT(M'FAUL') ; OUT(M'TY !')
OUT(1347571527);
OUT(1380011296);
OUT(1178686796);
OUT(1415127073);
// 251 NEWLINE
_imp_NEWLINE();
// 252 %STOP ; %FINISH
_imp_stop(0);
L_0049:;
// 253 L38: READ SYMBOL(I)
U_1014:;
READSYMBOL(/*?*/ &I);
// 254 %IF I\='.' %THEN ->L38
if (I == 46) goto L_004A;
goto U_1014;
L_004A:;
// 255 SELECT INPUT(0)
_imp_SELECTINPUT(0);
// 256 I=ST
I = ST;
// 257 L28: %IF I>16383 %THEN ->L29
U_1015:;
if (I <= 16383) goto L_004B;
goto U_1016;
L_004B:;
// 258 S(I)=999999
S[I] = 999999;
// 259 I=I+1
I = I + 1;
// 260 ->L28
goto U_1015;
// 261 L29: NEWLINE
U_1016:;
_imp_NEWLINE();
// 262 OUT(M'LABE') ; OUT(M'LS ')
OUT(1279345221);
OUT(1280516128);
// 263 NEWLINE
_imp_NEWLINE();
// 264 I=0
I = 0;
// 265 J=1
J = 1;
// 266 L20: OUT(LMN(J)) ; OUT(M' : ')
U_1017:;
OUT(LMN[J - 1]);
OUT(538982944);
// 267 %IF LAD(J)<0 %THEN %START
if (LAD[J - 1] >= 0) goto L_004C;
// 268 OUT(M'NOT ') ; OUT(M'SET ')
OUT(1313821728);
OUT(1397052448);
// 269 I=1
I = 1;
// 270 %FINISH %ELSE WRITE(LAD(J),1)
goto L_004D;
L_004C:;
_imp_WRITE(LAD[J - 1], 1);
L_004D:;
// 271 NEWLINE
_imp_NEWLINE();
// 272 %IF LMN(J)=M'CT' %THEN CT=LAD(J)
if (LMN[J - 1] != 17236) goto L_004E;
CT = LAD[J - 1];
L_004E:;
// 273 J=J+1
J = J + 1;
// 274 %IF J<LP %THEN ->L20
if (J >= LP) goto L_004F;
goto U_1017;
L_004F:;
// 275 %IF I\=0 %OR F\=0 %THEN %STOP
if (I != 0) goto L_0050;
if (F == 0) goto L_0051;
L_0050:;
_imp_stop(0);
L_0051:;
// 276 %IF RP=1 %THEN ->L21
if (RP != 1) goto L_0052;
goto U_1018;
L_0052:;
// 277 M=1
M = 1;
// 278 L22: I=R(M)>>16
U_1019:;
I = (unsigned int)R[M - 1] >> 16;
// 279 J=R(M)&65535
J = R[M - 1] & 65535;
// 280 K=S(J)&65535
K = S[J] & 65535;
// 281 L=LAD(I)+K
L = LAD[I - 1] + K;
// 282 %IF L>=65536 %THEN %START
if (L < 65536) goto L_0053;
// 283 OUT(M'ADDR') ; OUT(M' TRU') ; OUT(M'NCAT') ; OUT(M'ED ')
OUT(1094992978);
OUT(542397013);
OUT(1313030484);
OUT(1162092576);
// 284 WRITE(J,1)
_imp_WRITE(J, 1);
// 285 NEWLINE
_imp_NEWLINE();
// 286 L=L&65535
L = L & 65535;
// 287 %FINISH
L_0053:;
// 288 S(J)=S(J)>>16<<16!L
S[J] = (unsigned int)S[J] >> 16 << 16 | L;
// 289 M=M+1
M = M + 1;
// 290 %IF M<RP %THEN ->L22
if (M >= RP) goto L_0054;
goto U_1019;
L_0054:;
// 291 L21: I=0
U_1018:;
I = 0;
// 292 L23: REG(I)=0
U_101A:;
REG[I] = 0;
// 293 I=I+1
I = I + 1;
// 294 %IF I<=15 %THEN ->L23
if (I > 15) goto L_0055;
goto U_101A;
L_0055:;
// 295 SP=0
SP = 0;
// 296 L24: %IF SP<0 %OR SP>=CT %THEN %START
U_101B:;
if (SP < 0) goto L_0056;
if (SP < CT) goto L_0057;
L_0056:;
// 297 %IF SP>=16384 %AND SP<=16394 %THEN ->IOR(SP-16384)
if (SP < 16384) goto L_0058;
if (SP > 16394) goto L_0058;
IOR_line = __LINE__;
IOR_file = __FILE__;
IOR_index = SP - 16384;
goto case_IOR_dispatch;
L_0058:;
// 298 NEWLINE
_imp_NEWLINE();
// 299 OUT(M'** ')
OUT(707403808);
// 300 WRITE(SP,1)
_imp_WRITE(SP, 1);
// 301 SPACES(4)
_imp_SPACES(4);
// 302 OUT(M'INST') ; OUT(M'R AD') ; OUT(M'DR ?')
OUT(1229869908);
OUT(1377845572);
OUT(1146232895);
// 303 %STOP ; %FINISH
_imp_stop(0);
L_0057:;
// 304 I=S(SP)
I = S[SP];
// 305 J=I>>20&15
J = (unsigned int)I >> 20 & 15;
// 306 K=I>>16&15
K = (unsigned int)I >> 16 & 15;
// 307 L=I&65535
L = I & 65535;
// 308 %IF K=0 %THEN M=L %ELSE M=REG(K)+L
if (K != 0) goto L_005A;
M = L;
goto L_005B;
L_005A:;
M = REG[K] + L;
L_005B:;
// 309 I=I>>24
I = (unsigned int)I >> 24;
// 310 %IF I>128 %THEN %START
if (I <= 128) goto L_005C;
// 311 NEWLINE
_imp_NEWLINE();
// 312 N=0
N = 0;
// 313 L27: OUT(RMN(N))
U_101C:;
OUT(RMN[N]);
// 314 OUT(M' : ')
OUT(538982944);
// 315 WRITE(REG(N),1)
_imp_WRITE(REG[N], 1);
// 316 NEWLINE
_imp_NEWLINE();
// 317 N=N+1
N = N + 1;
// 318 %IF N<=15 %THEN ->L27
if (N > 15) goto L_005D;
goto U_101C;
L_005D:;
// 319 I=I-128
I = I - 128;
// 320 %FINISH
L_005C:;
// 321 %IF I>64 %THEN %START
if (I <= 64) goto L_005E;
// 322 TR=1
TR = 1;
// 323 I=I-64
I = I - 64;
// 324 %FINISH
L_005E:;
// 325 %IF I>32 %THEN %START
if (I <= 32) goto L_005F;
// 326 TR=0
TR = 0;
// 327 I=I-32
I = I - 32;
// 328 %FINISH
L_005F:;
// 329 %IF X'3E00F9FA'>>I&1\=0 %AND (M<CT %OR M>=16384) %THEN %START
if ((unsigned int)1040251386 >> I & 1 == 0) goto L_0060;
if (M < CT) goto L_0061;
if (M < 16384) goto L_0060;
L_0061:;
// 330 NEWLINE
_imp_NEWLINE();
// 331 OUT(M'** ')
OUT(707403808);
// 332 WRITE(SP,1)
_imp_WRITE(SP, 1);
// 333 SPACES(4)
_imp_SPACES(4);
// 334 OUT(M'EFFE') ; OUT(M'CTIV') ; OUT(M'E AD') ; OUT(M'DR ?')
OUT(1162233413);
OUT(1129597270);
OUT(1159741764);
OUT(1146232895);
// 335 WRITE(M,1)
_imp_WRITE(M, 1);
// 336 DUMP
DUMP();
// 337 %STOP ; %FINISH
_imp_stop(0);
L_0060:;
// 338 %IF I=0 %THEN %START
if (I != 0) goto L_0062;
// 339 NEWLINE
_imp_NEWLINE();
// 340 OUT(M'** ')
OUT(707403808);
// 341 WRITE(SP,1)
_imp_WRITE(SP, 1);
// 342 SPACES(4)
_imp_SPACES(4);
// 343 OUT(M'INST') ; OUT(M'RUCT') ; OUT(M'ION?')
OUT(1229869908);
OUT(1381319508);
OUT(1229934143);
// 344 DUMP
DUMP();
// 345 %STOP ; %FINISH
_imp_stop(0);
L_0062:;
// 346 %IF TR#0 %THEN %START
if (TR == 0) goto L_0063;
// 347 NEWLINE
_imp_NEWLINE();
// 348 WRITE(SP,3)
_imp_WRITE(SP, 3);
// 349 SPACES(2)
_imp_SPACES(2);
// 350 OUT(IMN(I))
OUT(IMN[I - 1]);
// 351 SPACES(2)
_imp_SPACES(2);
// 352 OUT(RMN(J))
OUT(RMN[J]);
// 353 WRITE(M,4)
_imp_WRITE(M, 4);
// 354 SPACES(6)
_imp_SPACES(6);
// 355 %FINISH
L_0063:;
// 356 ->INS(I)
INS_line = __LINE__;
INS_file = __FILE__;
INS_index = I;
goto case_INS_dispatch;
// 357 INS(1):! LOAD
case_INS_1:;
// 358 REG(J)=S(M)
REG[J] = S[M];
// 359 SP=SP+1
SP = SP + 1;
// 360 ->L24
goto U_101B;
// 361 INS(2):! LDA
case_INS_2:;
// 362 REG(J)=M
REG[J] = M;
// 363 SP=SP+1
SP = SP + 1;
// 364 ->L24
goto U_101B;
// 365 INS(3):! ADD
case_INS_3:;
// 366 REG(J)=REG(J)+S(M)
REG[J] = REG[J] + S[M];
// 367 SP=SP+1
SP = SP + 1;
// 368 ->L24
goto U_101B;
// 369 INS(4):! SUB
case_INS_4:;
// 370 REG(J)=REG(J)-S(M)
REG[J] = REG[J] - S[M];
// 371 SP=SP+1
SP = SP + 1;
// 372 ->L24
goto U_101B;
// 373 INS(5):! MLT
case_INS_5:;
// 374 REG(J)=REG(J)*S(M)
REG[J] = REG[J] * S[M];
// 375 SP=SP+1
SP = SP + 1;
// 376 ->L24
goto U_101B;
// 377 INS(6):! DIV
case_INS_6:;
// 378 REG(J)=REG(J)//S(M)
REG[J] = ((long)REG[J] / (long)S[M]);
// 379 SP=SP+1
SP = SP + 1;
// 380 ->L24
goto U_101B;
// 381 INS(7):! EXP
case_INS_7:;
// 382 REG(J)=REG(J)^^S(M)
REG[J] = _imp_IEXP(REG[J], S[M]);
// 383 !! REG(J)=REG(J)**S(M)
// 384 SP=SP+1
SP = SP + 1;
// 385 ->L24
goto U_101B;
// 386 INS(8):! STR
case_INS_8:;
// 387 S(M)=REG(J)
S[M] = REG[J];
// 388 SP=SP+1
SP = SP + 1;
// 389 ->L24
goto U_101B;
// 390 INS(9):! NEG
case_INS_9:;
// 391 REG(J)=-REG(J)
REG[J] = -REG[J];
// 392 SP=SP+1
SP = SP + 1;
// 393 ->L24
goto U_101B;
// 394 INS(10):! NOT
case_INS_10:;
// 395 REG(J)=\REG(J)
REG[J] = (~REG[J]);
// 396 SP=SP+1
SP = SP + 1;
// 397 ->L24
goto U_101B;
// 398 INS(11):! SHL
case_INS_11:;
// 399 REG(J)=REG(J)<<S(M)
REG[J] = REG[J] << S[M];
// 400 SP=SP+1
SP = SP + 1;
// 401 ->L24
goto U_101B;
// 402 INS(12):! SHR
case_INS_12:;
// 403 REG(J)=REG(J)>>S(M)
REG[J] = (unsigned int)REG[J] >> S[M];
// 404 SP=SP+1
SP = SP + 1;
// 405 ->L24
goto U_101B;
// 406 INS(13):! AND
case_INS_13:;
// 407 REG(J)=REG(J)&S(M)
REG[J] = REG[J] & S[M];
// 408 SP=SP+1
SP = SP + 1;
// 409 ->L24
goto U_101B;
// 410 INS(14):! OR
case_INS_14:;
// 411 REG(J)=REG(J)!S(M)
REG[J] = REG[J] | S[M];
// 412 SP=SP+1
SP = SP + 1;
// 413 ->L24
goto U_101B;
// 414 INS(15):! XOR
case_INS_15:;
// 415 REG(J)=REG(J)!!S(M)
REG[J] = REG[J] ^ S[M];
// 416 SP=SP+1
SP = SP + 1;
// 417 ->L24
goto U_101B;
// 418 INS(16):! BAL
case_INS_16:;
// 419 REG(J)=SP+1
REG[J] = SP + 1;
// 420 SP=M
SP = M;
// 421 ->L24
goto U_101B;
// 422 INS(17):! B
case_INS_17:;
// 423 SP=M
SP = M;
// 424 ->L24
goto U_101B;
// 425 INS(18):! BZ
case_INS_18:;
// 426 %IF REG(J)=0 %THEN SP=M %ELSE SP=SP+1
if (REG[J] != 0) goto L_0065;
SP = M;
goto L_0066;
L_0065:;
SP = SP + 1;
L_0066:;
// 427 ->L24
goto U_101B;
// 428 INS(19):! BNZ
case_INS_19:;
// 429 %IF REG(J)\=0 %THEN SP=M %ELSE SP=SP+1
if (REG[J] == 0) goto L_0067;
SP = M;
goto L_0068;
L_0067:;
SP = SP + 1;
L_0068:;
// 430 ->L24
goto U_101B;
// 431 INS(20):! BG
case_INS_20:;
// 432 %IF REG(J)>0 %THEN SP=M %ELSE SP=SP+1
if (REG[J] <= 0) goto L_0069;
SP = M;
goto L_006A;
L_0069:;
SP = SP + 1;
L_006A:;
// 433 ->L24
goto U_101B;
// 434 INS(21):! BNG
case_INS_21:;
// 435 %IF REG(J)<=0 %THEN SP=M %ELSE SP=SP+1
if (REG[J] > 0) goto L_006B;
SP = M;
goto L_006C;
L_006B:;
SP = SP + 1;
L_006C:;
// 436 ->L24
goto U_101B;
// 437 INS(22):! BL
case_INS_22:;
// 438 %IF REG(J)<0 %THEN SP=M %ELSE SP=SP+1
if (REG[J] >= 0) goto L_006D;
SP = M;
goto L_006E;
L_006D:;
SP = SP + 1;
L_006E:;
// 439 ->L24
goto U_101B;
// 440 INS(23):! BNL
case_INS_23:;
// 441 %IF REG(J)>=0 %THEN SP=M %ELSE SP=SP+1
if (REG[J] < 0) goto L_006F;
SP = M;
goto L_0070;
L_006F:;
SP = SP + 1;
L_0070:;
// 442 ->L24
goto U_101B;
// 443 INS(24):! STOP
case_INS_24:;
// 444 NEWLINE
_imp_NEWLINE();
// 445 OUT(M'STOP') ; OUT(M'PED ') ; OUT(M'AT ')
OUT(1398034256);
OUT(1346716704);
OUT(1096032288);
// 446 WRITE(SP,1)
_imp_WRITE(SP, 1);
// 447 %STOP
_imp_stop(0);
// 448 INS(25):! ADDF
case_INS_25:;
// 449 REAL(ADDR(REG(J)))=REAL(ADDR(REG(J)))+REAL(ADDR(S(M)))
*_imp_REAL(_imp_ADDR(/*?*/ ®[J])) = *_imp_REAL(_imp_ADDR(/*?*/ ®[J])) + *_imp_REAL(_imp_ADDR(/*?*/ &S[M]));
// 450 SP=SP+1
SP = SP + 1;
// 451 ->L24
goto U_101B;
// 452 INS(26):! SUBF
case_INS_26:;
// 453 REAL(ADDR(REG(J)))=REAL(ADDR(REG(J)))-REAL(ADDR(S(M)))
*_imp_REAL(_imp_ADDR(/*?*/ ®[J])) = *_imp_REAL(_imp_ADDR(/*?*/ ®[J])) - *_imp_REAL(_imp_ADDR(/*?*/ &S[M]));
// 454 SP=SP+1
SP = SP + 1;
// 455 ->L24
goto U_101B;
// 456 INS(27):! MLTF
case_INS_27:;
// 457 REAL(ADDR(REG(J)))=REAL(ADDR(REG(J)))*REAL(ADDR(S(M)))
*_imp_REAL(_imp_ADDR(/*?*/ ®[J])) = *_imp_REAL(_imp_ADDR(/*?*/ ®[J])) * *_imp_REAL(_imp_ADDR(/*?*/ &S[M]));
// 458 SP=SP+1
SP = SP + 1;
// 459 ->L24
goto U_101B;
// 460 INS(28):! DIVF
case_INS_28:;
// 461 REAL(ADDR(REG(J)))=REAL(ADDR(REG(J)))/REAL(ADDR(S(M)))
*_imp_REAL(_imp_ADDR(/*?*/ ®[J])) =
(double)(*_imp_REAL(_imp_ADDR(/*?*/ ®[J])) / *_imp_REAL(_imp_ADDR(/*?*/ &S[M])));
// 462 SP=SP+1
SP = SP + 1;
// 463 ->L24
goto U_101B;
// 464 INS(29):! EXPF
case_INS_29:;
// 465 REAL(ADDR(REG(J)))=REAL(ADDR(REG(J)))^S(M)
*_imp_REAL(_imp_ADDR(/*?*/ ®[J])) = _imp_REXP(*_imp_REAL(_imp_ADDR(/*?*/ ®[J])), S[M]);
// 466 !! REAL(ADDR(REG(J)))=REAL(ADDR(REG(J)))**S(M)
// 467 SP=SP+1
SP = SP + 1;
// 468 ->L24
goto U_101B;
// 469 INS(30):! NEGF
case_INS_30:;
// 470 REAL(ADDR(REG(J)))=-REAL(ADDR(REG(J)))
*_imp_REAL(_imp_ADDR(/*?*/ ®[J])) = -*_imp_REAL(_imp_ADDR(/*?*/ ®[J]));
// 471 SP=SP+1
SP = SP + 1;
// 472 ->L24
goto U_101B;
// 473 INS(31):! FLT
case_INS_31:;
// 474 REAL(ADDR(REG(J)))=REG(J)
*_imp_REAL(_imp_ADDR(/*?*/ ®[J])) = REG[J];
// 475 SP=SP+1
SP = SP + 1;
// 476 ->L24
goto U_101B;
// 477 IOR(0):! READ SYMBOL
case_IOR_0:;
// 478 READ SYMBOL(S(S(REG(14)+10)))
READSYMBOL(/*?*/ &S[S[REG[14] + 10]]);
// 479 SP=REG(13)
SP = REG[13];
// 480 ->L24
goto U_101B;
// 481 IOR(1):! NEXT SYMBOL
case_IOR_1:;
// 482 REG(15)=NEXT SYMBOL
REG[15] = _imp_NEXTSYMBOL();
// 483 SP=REG(13)
SP = REG[13];
// 484 ->L24
goto U_101B;
// 485 IOR(2):! SKIP SYMBOL
case_IOR_2:;
// 486 SKIP SYMBOL
_imp_SKIPSYMBOL();
// 487 SP=REG(13)
SP = REG[13];
// 488 ->L24
goto U_101B;
// 489 IOR(3):! PRINT SYMBOL
case_IOR_3:;
// 490 PRINT SYMBOL(S(REG(14)+10))
_imp_PRINTSYMBOL(S[REG[14] + 10]);
// 491 SP=REG(13)
SP = REG[13];
// 492 ->L24
goto U_101B;
// 493 IOR(4):! SPACE
case_IOR_4:;
// 494 SPACE
_imp_SPACE();
// 495 SP=REG(13)
SP = REG[13];
// 496 ->L24
goto U_101B;
// 497 IOR(5):! SPACES
case_IOR_5:;
// 498 SPACES(S(REG(14)+10))
_imp_SPACES(S[REG[14] + 10]);
// 499 SP=REG(13)
SP = REG[13];
// 500 ->L24
goto U_101B;
// 501 IOR(6):! NEWLINE
case_IOR_6:;
// 502 NEWLINE
_imp_NEWLINE();
// 503 SP=REG(13)
SP = REG[13];
// 504 ->L24
goto U_101B;
// 505 IOR(7):! NEWLINES
case_IOR_7:;
// 506 NEWLINES(S(REG(14)+10))
_imp_NEWLINES(S[REG[14] + 10]);
// 507 SP=REG(13)
SP = REG[13];
// 508 ->L24
goto U_101B;
// 509 IOR(8):! NEWPAGE
case_IOR_8:;
// 510 NEWPAGE
NEWPAGE();
// 511 SP=REG(13)
SP = REG[13];
// 512 ->L24
goto U_101B;
// 513 IOR(9):! READ
case_IOR_9:;
// 514 READ(S(S(REG(14)+10)))
READ(/*?*/ &S[S[REG[14] + 10]]);
// 515 SP=REG(13)
SP = REG[13];
// 516 ->L24
goto U_101B;
// 517 IOR(10):! WRITE
case_IOR_10:;
// 518 WRITE(S(REG(14)+10),S(REG(14)+11))
_imp_WRITE(S[REG[14] + 10], S[REG[14] + 11]);
// 519 SP=REG(13)
SP = REG[13];
// 520 ->L24
goto U_101B;
// 521 %ROUTINE READMN(%INTEGERNAME MN,NEXT)
void READMN(int *MN, int *NEXT) {
// 522 %INTEGER I,J,K
int I;
int J;
int K;
// 523 L1: READ SYMBOL(I)
U_101D:;
READSYMBOL(/*?*/ &I);
// 524 %IF I=' ' %THEN ->L1
if (I != 32) goto L_0071;
goto U_101D;
L_0071:;
// 525 %IF I<'A' %OR I>'Z' %THEN %START
if (I < 65) goto L_0072;
if (I <= 90) goto L_0073;
L_0072:;
// 526 MN=0
*MN = 0;
// 527 NEXT=I
*NEXT = I;
// 528 %RETURN ; %FINISH
return;
L_0073:;
// 529 J=1
J = 1;
// 530 L2: READ SYMBOL(K)
U_101E:;
READSYMBOL(/*?*/ &K);
// 531 %IF J=4 %OR K<'0' %OR (K>'9' %AND K<'A') %OR K>'Z' %THEN %START
if (J == 4) goto L_0074;
if (K < 48) goto L_0074;
if (K <= 57) goto L_0075;
if (K < 65) goto L_0074;
L_0075:;
if (K <= 90) goto L_0076;
L_0074:;
// 532 MN=I
*MN = I;
// 533 NEXT=K
*NEXT = K;
// 534 %RETURN ; %FINISH
return;
L_0076:;
// 535 I=I<<8!K
I = I << 8 | K;
// 536 J=J+1
J = J + 1;
// 537 ->L2
goto U_101E;
// 538 %END
} /* end of READMN */
// 539 %ROUTINE FAULT(%INTEGER I,J,K,L)
void FAULT(int I, int J, int K, int L) {
// 540 OUT(M'*** ')
OUT(707406368);
// 541 WRITE(SP,4)
_imp_WRITE(SP, 4);
// 542 SPACES(6)
_imp_SPACES(6);
// 543 OUT(I)
OUT(I);
// 544 OUT(J)
OUT(J);
// 545 OUT(K)
OUT(K);
// 546 OUT(L)
OUT(L);
// 547 NEWLINE
_imp_NEWLINE();
// 548 F=F+1
F = F + 1;
// 549 %END
return;
} /* end of FAULT */
// 550 %ROUTINE OUT(%INTEGER I)
void OUT(int I) {
// 551 PRINT SYMBOL(I>>24) %if I>>24 # 0
if ((unsigned int)I >> 24 == 0) goto L_0077;
_imp_PRINTSYMBOL((unsigned int)I >> 24);
L_0077:;
// 552 PRINT SYMBOL(I>>16&255) %if I>>16&255 # 0
if ((unsigned int)I >> 16 & 255 == 0) goto L_0078;
_imp_PRINTSYMBOL((unsigned int)I >> 16 & 255);
L_0078:;
// 553 PRINT SYMBOL(I>>8&255) %if I>>8&255 # 0
if ((unsigned int)I >> 8 & 255 == 0) goto L_0079;
_imp_PRINTSYMBOL((unsigned int)I >> 8 & 255);
L_0079:;
// 554 PRINT SYMBOL(I&255) %if I&255 # 0
if (I & 255 == 0) goto L_007A;
_imp_PRINTSYMBOL(I & 255);
L_007A:;
// 555 %END
return;
} /* end of OUT */
// 556 %ROUTINE DUMP
void DUMP(void) {
// 557 %INTEGER I,J
int I;
int J;
// 558 NEWLINE
_imp_NEWLINE();
// 559 I=0
I = 0;
// 560 L1: OUT(RMN(I))
U_101F:;
OUT(RMN[I]);
// 561 OUT(M' : ')
OUT(538982944);
// 562 WRITE(REG(I),1)
_imp_WRITE(REG[I], 1);
// 563 NEWLINE
_imp_NEWLINE();
// 564 I=I+1
I = I + 1;
// 565 %IF I<=15 %THEN ->L1
if (I > 15) goto L_007B;
goto U_101F;
L_007B:;
// 566 %IF REG(14)<ST %THEN %START
if (REG[14] >= ST) goto L_007C;
// 567 OUT(M'STP<')
OUT(1398034492);
// 568 OUT(M'ST: ')
OUT(1398028832);
// 569 NEWLINE
_imp_NEWLINE();
// 570 %RETURN ; %FINISH
return;
L_007C:;
// 571 I=ST
I = ST;
// 572 J=0
J = 0;
// 573 L2: %IF J=0 %THEN %START
U_1020:;
if (J != 0) goto L_007D;
// 574 NEWLINE
_imp_NEWLINE();
// 575 WRITE(I,5)
_imp_WRITE(I, 5);
// 576 SPACES(4)
_imp_SPACES(4);
// 577 %FINISH
L_007D:;
// 578 WRITE(S(I),6)
_imp_WRITE(S[I], 6);
// 579 I=I+1
I = I + 1;
// 580 J=J+1
J = J + 1;
// 581 %IF J=8 %THEN J=0
if (J != 8) goto L_007E;
J = 0;
L_007E:;
// 582 %IF I<=REG(14) %THEN ->L2
if (I > REG[14]) goto L_007F;
goto U_1020;
L_007F:;
// 583 %END
return;
} /* end of DUMP */
// 584 %ENDOFPROGRAM
_imp_stop(0);
return 0;
case_INS_dispatch:
if (INS_index < 1 || INS_index > 31)
_imp_signalf(6, 3, INS_index, "->INS(%d) out of bounds at %s line %d", INS_index, INS_file, INS_line);
goto *INS[INS_index - 1];
case_IOR_dispatch:
if (IOR_index < 0 || IOR_index > 10)
_imp_signalf(6, 3, IOR_index, "->IOR(%d) out of bounds at %s line %d", IOR_index, IOR_file, IOR_line);
goto *IOR[IOR_index - 0];
end_0:;
}