%
Page Numbers: Yes First Page: 1
Heading:
Ifu2.mcApril 22, 1979 5:24 PM%
* INSERT[D1ALU.MC];
* TITLE[Ifu2];
* INSERT[PREAMBLE.MC];
%
May 28, 1981 2:56 PM
Change Bmux to BmuxRM to keep midas happy.
April 22, 1979 5:24 PM
Move initIfuM0thru16 to ifuRamSubrs
April 19, 1979 10:28 AM
Call resetIfu before using endIfuWd macro.
January 17, 1979 4:50 PM
Use instruction set 1, init IfuM field by field.
%

%
CONTENTS

TEST
DESCRIPTION
itTestCase2Long sequence of opcodes
%


* November 30, 1978 9:27 AM
%
itTestCase2:
This is a long sequence of opcodes that we step thru the ifu by using the test register.
ExpectedDispatch remains valid across ifuJumps. ExpectedDispatch<0 ==> don’t check where the dispatch came from.

%

itTestCase2:
subroutine;

saveReturn[iLink0];
t ← 1c;
call[itMosFhSh];* use instruction set 1
itCase2Clk0:

t ← (r0)-1;
clockCount ← t;
iTick[test.fh];* 0
iReset[test.sh];* 1
iTick[test.fh];* 2
iTick[test.sh];* 3
iNewPc[test.fh];* 4;
iNewPc[test.sh];* 5
BmuxRM ← 40c;
iTick[test.fh];* 6
iTick[test.ShAck];* 7
noop;
itCase2Clk10:
iTick[test.FhAck];* 10
iTick[test.ShAckFd];* 11
iTick[test.FhAck];* 12
iTick[test.ShAckFd, 1];* 13
iTick[test.FhAck, 1];* 14
iTick[test.ShFd];* 15
iTick[test.fh, 2];* 16
iTick[test.sh];* 17
noop;
itCase2Clk20:
iTick[test.Fh];* 20
expectedDispatch ← opAt15;
Ijump[test.Sh];* 21
iTick[test.fh, 21];* 22
iJumpData[test.ShAck, 2];* 23
iTick[test.FhAck, 22];* 24
iJumpData[test.ShAckFd, 2];* 25
iTick[test.FhAck, 2];* 26
iJumpData[test.ShAckFd, 3];* 27
itCase2Clk30:
noop;
iTick[test.FhAck, 23];* 30
iJumpData[test.ShFd];* 31
iTick[test.Fh, 24];* 32
iJump[test.Sh, 3];* 33
iTick[test.Fh, 25];* 34
Idata[test.ShAck];* 35
iTick[test.FhAck, 26];* 36
iJumpData[test.ShAckFd, 25];* 37
noop;
itCase2Clk40:
iTick[test.FhAck, 25];* 40
iData[test.ShAckFd, 1];* 41
iTick[test.FhAck, 2];* 42
iJumpData[test.ShFd];* 43
iTick[test.Fh, 27];* 44
iJump[test.Sh, 2];* 45
iTick[test.Fh, 30];* 46
iJumpData[test.ShAck, 3];* 47
noop;
itCase2Clk50:
iTick[test.FhAck, 30];* 50
iJumpData[test.ShAckFd, 30];* 51
iTick[test.FhAck, 30];* 52
iJumpData[test.ShAckFd, 31];* 53
iTick[test.FhAck, 31];* 54
expectedDispatch ← cm1;* turn off dispatch address checking
iJump[test.ShFd];* 55
iTick[test.Fh, 32];* 56
iJump[test.Sh, 3];* 57
noop;
itCase2Clk60:
iTick[test.Fh, 33];* 60
iData[test.ShAck];* 61
iTick[test.FhAck, 34];* 62
iJumpData[test.ShFd, 1];* 63
iTick[test.Fh, 34];* 64
iData[test.ShAck, 3];* 65
iTick[test.FhAck, 35];* 66
iJumpData[test.ShAckFd];* 67
noop;
itCase2Clk70:
iTick[test.FhAck];* 70
iJumpData[test.ShFd];* 71
iTick[test.Fh, 36];* 72
iJump[test.Sh, 2];* 73
iTick[test.Fh, 37];* 74
iData[test.ShAck, 1];* 75
iTick[test.FhAck, 37];* 76
iJumpData[test.ShAckFd, 37];* 77
noop;
itCase2Clk100:
iTick[test.FhAck, 37];* 100
iJumpData[test.ShAckFd, 1];* 101
iTick[test.FhAck, 3];* 102
iJumpData[test.ShFd];* 103
iTick[test.Fh, 40];* 104
iJump[test.Sh];* 105
iTick[test.Fh, 41];* 106
iJumpData[test.ShAck, 2];* 107
noop;
itCase2Clk110:
iTick[test.FhAck, 42];* 110
iData[test.ShAckFd, 2];* 111
iTick[test.FhAck, 2];* 112
iJumpData[test.ShAckFd, 1];* 113
iTick[test.FhAck, 10];* 114
iJumpData[test.ShFd];* 115
iTick[test.Fh, 3];* 116
iJump[test.Sh, 13];* 117
noop;
itCase2Clk120:
iTick[test.Fh, 13];* 120
iJumpData[test.ShAck, 7];* 121
iTick[test.FhAck, 7];* 122
iJumpData[test.ShAckFd, 7];* 123
iTick[test.FhAck, 7];* 124
iJump[test.ShAckFd, 7];* 125
iTick[test.FhAck, 377];* 126
iJump[test.ShFd, 1];* 127
noop;
itCase2Clk130:
iTick[test.Fh, 1];* 130
iJump[test.ShAck];* 131
iTick[test.FhAck];* 132
ijumpData[test.ShAckFd];* 133
iTick[test.FhAck];* 134
iJump[test.ShAckFd, 13];* 135
iTick[test.FhAck, 3];* 136
iJump[test.ShAckFd, 7];* 137
noop;
itCase2Clk140:
iTick[test.FhAck, 7];* 140
iJump[test.ShAckFd, 1];* 141
iTick[test.FhAck, 1];* 142
iJumpData[test.ShAckFd, 3];* 143
iTick[test.FhAck, 3];* 144
iJump[test.ShAckFd, 1];* 145
iTick[test.FhAck, 7];* 146
iJump[test.ShFd];* 147
noop;
itCase2Clk150:
iTick[test.Fh, 3];* 150
iJump[test.Sh];* 151
iTick[test.Fh];* 152
iJumpData[test.ShAck, 10];* 153
iTick[test.FhAck, 10];* 154
iJumpData[test.ShAckFd, 10];* 155
iTick[test.FhAck, 10];* 156
iJump[test.ShAckFd, 10];* 157
noop;
itCase2Clk160:
iTick[test.FhAck, 3];* 160
iJump[test.ShFd];* 161
iTick[test.Fh];* 162
iJump[test.ShAck];* 163
iTick[test.FhAck];* 164
iJumpData[test.ShAckFd];* 165
iTick[test.FhAck];* 166
iJump[test.ShAckFd, 1];* 167
noop;
itCase2Clk170:
iTick[test.FhAck];* 170
iJump[test.ShAckFd, 12];* 171
iTick[test.FhAck];* 172
iJump[test.ShFd];* 173
iTick[test.Fh];* 174
iJumpData[test.ShAck];* 175
iTick[test.FhAck, 12];* 176
iJumpData[test.ShAckFd, 12];* 177
noop;
itCase2Clk200:
iTick[test.FhAck, 12];* 200
iJump[test.ShAckFd, 11];* 201

iTick[test.FhAck, 12];* 202
iJump[test.ShFd];* 203
iTick[test.Fh];* 204
iJump[test.ShAck];* 205
iTick[test.FhAck, 43];* 206
iJumpData[test.ShAckFd, 43];* 207
noop;
itCase2Clk210:
iTick[test.FhAck, 43];* 210
iJump[test.ShAckFd, 12];* 211
iTick[test.FhAck, 11];* 212
iJump[test.ShAckFd, 12];* 213
iTick[test.FhAck, 12];* 214
iJump[test.ShAckFd, 43];* 215
iTick[test.FhAck, 43];* 216
iJumpData[test.ShAckFd, 10];* 217
noop;
itCase2Clk220:
iTick[test.FhAck, 10];* 220
iJump[test.ShAckFd, 14];* 221
iTick[test.FhAck, 12];* 222
iJump[test.ShAckFd, 3];* 223
iTick[test.FhAck, 3];* 224
iJump[test.ShAckFd, 44];* 225
iTick[test.FhAck, 44];* 226
iJumpData[test.ShAckFd, 5];* 227
noop;
itCase2Clk230:
iTick[test.FhAck, 5];* 230
iJump[test.ShAckFd, 12];* 231
iTick[test.FhAck, 14];* 232
iJump[test.ShFd];* 233
iTick[test.Fh];* 234
iJump[test.ShAck];* 235
iTick[test.FhAck, 44];* 236
iJumpData[test.ShAckFd, 44];* 237
noop;
itCase2Clk240:
iTick[test.FhAck, 44];* 240
iJump[test.ShAckFd, 3];* 241
iTick[test.FhAck, 43];* 242
iJump[test.ShFd];* 243
iTick[test.Fh, 44];* 244
iJump[test.Sh, 10];* 245
iTick[test.Fh, 5];* 246
iData[test.ShAck, 1];* 247
noop;
itCase2Clk250:
iTick[test.FhAck, 1];* 250
iJumpData[test.ShAckFd, 5];* 251
iTick[test.FhAck, 5];* 252
iJumpData[test.ShAckFd, 10];* 253
iTick[test.FhAck, 10];* 254
iJump[test.ShAckFd, 2];* 255
iTick[test.FhAck, 45];* 256
iJump[test.ShFd, 7];* 257
noop;
itCase2Clk260:
iTick[test.Fh, 373];* 260
iJump[test.ShAck];* 261
iTick[test.FhAck];* 262
iJumpData[test.ShAckFd];* 263
iTick[test.FhAck];* 264
iJumpData[test.ShAckFd];* 265
iTick[test.FhAck];* 266
iJump[test.ShAckFd, 1];* 267
noop;
itCase2Clk270:
iTick[test.FhAck, 5];* 270
iJump[test.ShAckFd, 10];* 271
iTick[test.FhAck, 12];* 272
iJump[test.ShFd, 2];* 273
iTick[test.Fh, 2];* 274
iJumpData[test.ShAck, 7];* 275
iTick[test.FhAck, 7];* 276
iJumpData[test.ShAckFd, 7];* 277
noop;
itCase2Clk300:
iTick[test.FhAck, 7];*300
iJump[test.ShAckFd, 4];*301
iTick[test.FhAck, 4];*302
iJump[test.ShFd];*303
iTick[test.Fh, 5];*304
iJump[test.Sh];*305
iTick[test.Fh, 46];*306
iJumpData[test.ShAck, 5];*307
noop;
itCase2Clk310:
iTick[test.FhAck, 47];*310
iJumpData[test.ShAckFd, 5];*311

iTick[test.FhAck,5];*312
iData[test.ShAckFd,6];*313
iTick[test.FhAck,50];*314
iJumpData[test.ShFd];*315
iTick[test.Fh,51];*316
iData[test.Sh,6];*317
noop;
itCase2Clk320:
iTick[test.Fh,6];*320
iJumpData[test.Sh,6];*321
iTick[test.Fh,52];*322
iData[test.ShAck];*323
iTick[test.FhAck];*324
iData[test.ShFd];*325
iTick[test.Fh,53];*326
iJumpData[test.ShAck,4];*327
noop;
itCase2Clk330:
iTick[test.FhAck,5];*330
iData[test.ShAckFd];*331
iTick[test.FhAck];*332
iData[test.ShFd];*333
iTick[test.Fh,54];*334
iJumpData[test.Sh,5];*335
iTick[test.Fh,55];*336
iJumpData[test.ShAck,6];*337
noop;
itCase2Clk340:
iTick[test.FhAck,55];*340
iData[test.ShAckFd,55];*341
iTick[test.FhAck,55];*342
iJumpData[test.ShFd,56];*343
iTick[test.Fh,56];*344
iData[test.ShAck];*345
iTick[test.FhAck,57];*346
iJumpData[test.ShFd,6];*347
noop;
itCase2Clk350:
iTick[test.Fh,60];*350
iData[test.ShAck];*351
iTick[test.FhAck];*352
iData[test.ShFd];*353
iTick[test.Fh,61];*354
iJumpData[test.Sh,4];*355
iTick[test.Fh,6];*356
iData[test.ShAck];*357
noop;
itCase2Clk360:
iTick[test.FhAck];*360
iData[test.ShFd];*361
iTick[test.Fh,62];*362
iJumpData[test.ShAck];*363
iTick[test.FhAck,63];*364
iJumpData[test.ShFd,5];*365
iTick[test.Fh,63];*366
iData[test.ShAck,64];*367
noop;
itCase2Clk370:
iTick[test.FhAck,64];*370
iData[test.ShFd,4];*371
iTick[test.Fh,64];*372
iJumpData[test.ShAck,4];*373
iTick[test.FhAck,6];*374
iData[test.ShAckFd];*375
iTick[test.FhAck];*376
iJumpData[test.ShFd];*377
noop;
itCase2Clk400:
iTick[test.Fh,65];*400
iJumpData[test.Sh];*401
iTick[test.Fh,66];*402
iJumpData[test.ShAck,5];*403
iTick[test.FhAck,67];*404
iData[test.ShAckFd,5];*405
iTick[test.FhAck,5];*406
iData[test.ShFd,4];*407
noop;
itCase2Clk410:
iTick[test.Fh,15];*410
iJumpData[test.ShAck];*411
iTick[test.FhAck,1];*412
iData[test.ShFd];*413
iTick[test.Fh];*414
iJumpData[test.Sh];*415
iTick[test.Fh,4];*416
iJumpData[test.ShAck];*417
noop;
itCase2Clk420:
iTick[test.FhAck,1];*420
iTick[test.ShFd];*421
iTick[test.Fh];*422
iTick[test.Sh];*423
iTick[test.Fh];*424
iTick[test.Sh];*425
iTick[test.Fh];*426
iJump[test.Sh];*427
noop;
itCase2Clk430:
iTick[test.Fh,4];*430
iJumpData[test.ShAck];*431
returnUsing[iLink0];