EmulatorTst.bcd created 12-Oct-83  9:52:15 PDT  on 0#252#
    creator 13-Sep-83 17:10:14 PDT  on 0#0#
    source 12-Oct-83  9:51:44 PDT  on 0#0#


Cross Jumped
Global frame size:  81

Entry Vector:  evi [bytePC]
  0 [10]
  1 [432]
  2 [252]
  3 [265]
  4 [302]
  5 [315]
  6 [330]
  7 [343]
  8 [356]
  9 [371]
  10 [404]
  11 [417]
  12 [521]
  13 [445]
  14 [460]
  15 [473]
  16 [506]
  17 [1234]
  18 [723]
  19 [4623]
  20 [4555]
  21 [10764]

Catch Entry Vector:  cevi [bytePC]
  None

-- EmulatorTestImpl.mesa    12-Oct-83  8:41:44 by JGS

-- Test program to exercise the the Mesa emulator of a PrincOps machine.

DIRECTORY
  EmulatorTest,
  ESCAlpha,
  Mopcodes,
  SDDefs;

   Entry point: 0,   Frame size index:  0

GermOpsImpl: PROGRAM
  IMPORTS EmulatorTest =

  BEGIN OPEN EmulatorTest, SDDefs, ESCAlpha, Mopcodes;
 
  -- Useful variables:

  BothOnes: PROCEDURE RETURNS [LONG CARDINAL] = MACHINE CODE {zLIN1; zLIN1};
  
  

  zero: CARDINAL ← 0; 
  
	   11:	LI0
	   12:	SGB	     5

  one: CARDINAL ← 1; 
  
	   14:	LI1
	   15:	SGB	     1

  two: CARDINAL ← 2; 
  
	   17:	LI2
	   20:	SGB	    10

  three: CARDINAL ← 3; 
  
	   22:	LI3
	   23:	SGB	    13

  four: CARDINAL ← 4; 
  
	   25:	LI4
	   26:	SGB	    16

  five: CARDINAL ← 5; 
  
	   30:	LI5
	   31:	SGB	    20

  six: CARDINAL ← 6; 
  
	   33:	LI6
	   34:	SGB	    36

  seven: CARDINAL ← 7; 
  
	   36:	LI7
	   37:	SGB	    54

  eight: CARDINAL ← 8; 
  
	   41:	LI8
	   42:	SGB	    61

  nine: CARDINAL ← 9; 
  
	   44:	LI9
	   45:	SGB	    24

  ten: CARDINAL ← 10; 
  
	   47:	LI10
	   50:	SGB	    73

  eleven: CARDINAL ← 11; 
  
	   52:	LIB	    13
	   54:	SGB	   111

  twelve: CARDINAL ← 12; 
  
	   56:	LIB	    14
	   60:	SGB	    62

  thirteen: CARDINAL ← 13; 
  
	   62:	LIB	    15
	   64:	SGB	   114

  fourteen: CARDINAL ← 14; 
  
	   66:	LIB	    16
	   70:	SGB	   110

  fifteen: CARDINAL ← 15; 
  fourHundred: CARDINAL = 400B;
  
	   72:	LIB	    17
	   74:	SGB	   107

  allOnes: CARDINAL ← 177777B; 
  negInfinity: CARDINAL = 100000B;
  minusTwo: CARDINAL = 177776B;
  
  
	   76:	LIN1
	   77:	SGB	    35

  loopCount: CARDINAL ← 100; 
  currentOpcode: CARDINAL;
  
  
	  101:	LIB	   144
	  103:	SGB	     4

  oneTwo: LONG CARDINAL ← 200000B * 1 + 2;
  
	  105:	LI2
	  106:	LI1
	  107:	SGDB	    11

  oneThree: LONG CARDINAL ← 200000B * 1 + 3;
  
	  111:	LI3
	  112:	LI1
	  113:	SGDB	   112

  twoFour: LONG CARDINAL ← 200000B * 2 + 4;
  
	  115:	LI4
	  116:	LI2
	  117:	SGDB	   103

  threeFour: LONG CARDINAL ← 200000B * 3 + 4;
  
	  121:	LI4
	  122:	LI3
	  123:	SGDB	    21

  fourSix: LONG CARDINAL ← 200000B * 4 + 6;
  
	  125:	LI6
	  126:	LI4
	  127:	SGDB	    74

  fiveSix: LONG CARDINAL ← 200000B * 5 + 6;
  
	  131:	LI6
	  132:	LI5
	  133:	SGDB	    63

  zeroAllOnes: LONG CARDINAL ← 177777B;
  
	  135:	LIN1
	  136:	LI0
	  137:	SGDB	    52

  oneAllZeros: LONG CARDINAL ← 200000B;
  
	  141:	LI0
	  142:	LI1
	  143:	SGDB	   105

  bothZero: LONG CARDINAL ← 0;
  
	  145:	LID0
	  146:	SGDB	    57

  bothOnes: LONG CARDINAL ← BothOnes[];
   
  a, b, i: CARDINAL;
  aD, bD: LONG CARDINAL;
   
  
	  150:	LIN1
	  151:	LIN1
	  152:	SGDB	   101

  proc: PROCEDURE;
  
  SetMP: PROCEDURE [CARDINAL] = MACHINE CODE {zESC, aWRMP};

  Halt: PROCEDURE [code: CARDINAL] = INLINE {SetMP[code]; DO i ← 0 ENDLOOP};
  
  SetTest: PROCEDURE [opcode: CARDINAL] = INLINE {
    SetMP[opcode]; currentOpcode ← opcode};

  Low: PROCEDURE [a: LONG UNSPECIFIED] RETURNS [UNSPECIFIED] = INLINE {
    RETURN[LOOPHOLE[a, RECORD[low, high: CARDINAL]].low]};
  
  High: PROCEDURE [a: LONG UNSPECIFIED] RETURNS [UNSPECIFIED] = INLINE {
    RETURN[LOOPHOLE[a, RECORD[low, high: CARDINAL]].high]};
  
  -- Trap Handlers
  
  
	  154:	LID0
	  155:	SGDB	    77

  SetTest[400];
  
	  157:	LIW	   620
	  162:	ESC	    WRMP


	  164:	LIW	   620
	  167:	SGB	     2

  FillInSD[];

  DO
    
	  171:	LFC	   521

    SetTest[zLFC];
    
	  174:	LIB	   355
	  176:	ESC	    WRMP


	  200:	LIB	   355
	  202:	SGB	     2

    JumpTests[];
    
	  204:	LFC	   723

    SetTest[zLFC];
    
	  207:	LIB	   355
	  211:	ESC	    WRMP


	  213:	LIB	   355
	  215:	SGB	     2

    StackTests[];
    
	  217:	LFC	  1234

    SetTest[zLFC];
    
	  222:	LIB	   355
	  224:	ESC	    WRMP


	  226:	LIB	   355
	  230:	SGB	     2

    SetupReadTests[];
    
	  232:	LFC	  4555

    SetTest[zLFC];
    
	  235:	LIB	   355
	  237:	ESC	    WRMP


	  241:	LIB	   355
	  243:	SGB	     2

    ReadWriteTests[]
    ENDLOOP;
  
  
  END.


LOG

12-Oct-81 16:05:36   Knutsen   New instruction set.
12-Oct-81 16:05:36   Bridge   New instruction set (Klamath).
	  245:	LFC	  4623
	  250:	JB	   324 (174)


Instructions: 93, Bytes: 162

  BreakTrap: PROCEDURE = {
   Entry point: 2,   Frame size index:  0

                          Halt[9000+SDDefs.sBreakTrap]};
  
	  253:	LIW	 21450
	  256:	ESC	    WRMP


	  260:	LI0
	  261:	SGB	     0
	  263:	JB	   375 (260)


Instructions: 5, Bytes: 10

  StackError: PROCEDURE = {
   Entry point: 3,   Frame size index:  0

                           Halt[8000+currentOpcode]};
  
	  266:	LG2
	  267:	LIW	 17500
	  272:	ADD
	  273:	ESC	    WRMP


	  275:	LI0
	  276:	SGB	     0
	  300:	JB	   375 (275)


Instructions: 7, Bytes: 12

  RescheduleError: PROCEDURE = {
   Entry point: 4,   Frame size index:  0

                                Halt[9000+SDDefs.sRescheduleError]};
  
	  303:	LIW	 21453
	  306:	ESC	    WRMP


	  310:	LI0
	  311:	SGB	     0
	  313:	JB	   375 (310)


Instructions: 5, Bytes: 10

  XferTrap: PROCEDURE = {
   Entry point: 5,   Frame size index:  0

                         Halt[9000+SDDefs.sXferTrap]};
  
	  316:	LIW	 21454
	  321:	ESC	    WRMP


	  323:	LI0
	  324:	SGB	     0
	  326:	JB	   375 (323)


Instructions: 5, Bytes: 10

  OpcodeTrap: PROCEDURE = {
   Entry point: 6,   Frame size index:  0

                           Halt[9000+SDDefs.sOpcodeTrap]};
  
	  331:	LIW	 21455
	  334:	ESC	    WRMP


	  336:	LI0
	  337:	SGB	     0
	  341:	JB	   375 (336)


Instructions: 5, Bytes: 10

  ControlTrap: PROCEDURE = {
   Entry point: 7,   Frame size index:  0

                            Halt[9000+SDDefs.sControlTrap]};
  
	  344:	LIW	 21456
	  347:	ESC	    WRMP


	  351:	LI0
	  352:	SGB	     0
	  354:	JB	   375 (351)


Instructions: 5, Bytes: 10

  CodeTrap: PROCEDURE = {
   Entry point: 8,   Frame size index:  0

                         Halt[9000+SDDefs.sCodeTrap]};
  
	  357:	LIW	 21457
	  362:	ESC	    WRMP


	  364:	LI0
	  365:	SGB	     0
	  367:	JB	   375 (364)


Instructions: 5, Bytes: 10

  HardwareError: PROCEDURE = {
   Entry point: 9,   Frame size index:  0

                              Halt[9000+SDDefs.sHardwareError]};
  
	  372:	LIW	 21460
	  375:	ESC	    WRMP


	  377:	LI0
	  400:	SGB	     0
	  402:	JB	   375 (377)


Instructions: 5, Bytes: 10

  UnboundTrap: PROCEDURE = {
   Entry point: 10,   Frame size index:  0

                            Halt[9000+SDDefs.sUnboundTrap]};
  
	  405:	LIW	 21461
	  410:	ESC	    WRMP


	  412:	LI0
	  413:	SGB	     0
	  415:	JB	   375 (412)


Instructions: 5, Bytes: 10

  DivZeroTrap: PROCEDURE = {
   Entry point: 11,   Frame size index:  0

                            Halt[9000+SDDefs.sDivZeroTrap]};
  
	  420:	LIW	 21462
	  423:	ESC	    WRMP


	  425:	LI0
	  426:	SGB	     0
	  430:	JB	   375 (425)


Instructions: 5, Bytes: 10

  DivCheckTrap: PROCEDURE = {
   Entry point: 1,   Frame size index:  0

                             Halt[9000+SDDefs.sDivCheckTrap]};
  
	  433:	LIW	 21463
	  436:	ESC	    WRMP


	  440:	LI0
	  441:	SGB	     0
	  443:	JB	   375 (440)


Instructions: 5, Bytes: 10

  InterruptError: PROCEDURE = {
   Entry point: 13,   Frame size index:  0

                               Halt[9000+SDDefs.sInterruptError]};
  
	  446:	LIW	 21464
	  451:	ESC	    WRMP


	  453:	LI0
	  454:	SGB	     0
	  456:	JB	   375 (453)


Instructions: 5, Bytes: 10

  ProcessTrap: PROCEDURE = {
   Entry point: 14,   Frame size index:  0

                            Halt[9000+SDDefs.sProcessTrap]};
  
	  461:	LIW	 21465
	  464:	ESC	    WRMP


	  466:	LI0
	  467:	SGB	     0
	  471:	JB	   375 (466)


Instructions: 5, Bytes: 10

  BoundsTrap: PROCEDURE = {
   Entry point: 15,   Frame size index:  0

                           Halt[9000+SDDefs.sBoundsTrap]};
  
	  474:	LIW	 21466
	  477:	ESC	    WRMP


	  501:	LI0
	  502:	SGB	     0
	  504:	JB	   375 (501)


Instructions: 5, Bytes: 10

  PointerTrap: PROCEDURE = {
   Entry point: 16,   Frame size index:  0

                            Halt[9000+SDDefs.sPointerTrap]};
  
  
	  507:	LIW	 21467
	  512:	ESC	    WRMP


	  514:	LI0
	  515:	SGB	     0
	  517:	JB	   375 (514)


Instructions: 5, Bytes: 10

  FillInSD: PROCEDURE = {
    
   Entry point: 12,   Frame size index:  0

    SDDefs.SD[SDDefs.sBreakTrap] ← LOOPHOLE[BreakTrap];
    
	  522:	GA1
	  523:	LIW	   252
	  526:	LIHB	     2
	  530:	WDB	     0

    SDDefs.SD[SDDefs.sStackError] ← LOOPHOLE[StackError];
    
	  532:	GA1
	  533:	LIW	   265
	  536:	LIHB	     2
	  540:	WDB	     4

    SDDefs.SD[SDDefs.sRescheduleError] ←  LOOPHOLE[RescheduleError];
    
	  542:	GA1
	  543:	LIW	   302
	  546:	LIHB	     2
	  550:	WDB	     6

    SDDefs.SD[SDDefs.sXferTrap] ← LOOPHOLE[XferTrap];
    
	  552:	GA1
	  553:	LIW	   315
	  556:	LIHB	     2
	  560:	WDB	    10

    SDDefs.SD[SDDefs.sOpcodeTrap] ← LOOPHOLE[OpcodeTrap];
    
	  562:	GA1
	  563:	LIW	   330
	  566:	LIHB	     2
	  570:	WDB	    12

    SDDefs.SD[SDDefs.sControlTrap] ← LOOPHOLE[ControlTrap];
    
	  572:	GA1
	  573:	LIW	   343
	  576:	LIHB	     2
	  600:	WDB	    14

    SDDefs.SD[SDDefs.sCodeTrap] ← LOOPHOLE[CodeTrap];
    
	  602:	GA1
	  603:	LIW	   356
	  606:	LIHB	     2
	  610:	WDB	    16

    SDDefs.SD[SDDefs.sHardwareError] ← LOOPHOLE[HardwareError];
    
	  612:	GA1
	  613:	LIW	   371
	  616:	LIHB	     2
	  620:	WDB	    20

    SDDefs.SD[SDDefs.sUnboundTrap] ← LOOPHOLE[UnboundTrap];
    
	  622:	GA1
	  623:	LIW	   404
	  626:	LIHB	     2
	  630:	WDB	    22

    SDDefs.SD[SDDefs.sDivZeroTrap] ← LOOPHOLE[DivZeroTrap];
    
	  632:	GA1
	  633:	LIW	   417
	  636:	LIHB	     2
	  640:	WDB	    24

    SDDefs.SD[SDDefs.sDivCheckTrap] ← LOOPHOLE[DivCheckTrap];
    
	  642:	GA1
	  643:	LIW	   432
	  646:	LIHB	     2
	  650:	WDB	    26

    SDDefs.SD[SDDefs.sInterruptError] ← LOOPHOLE[InterruptError];
    
	  652:	GA1
	  653:	LIW	   445
	  656:	LIHB	     2
	  660:	WDB	    30

    SDDefs.SD[SDDefs.sProcessTrap] ← LOOPHOLE[ProcessTrap];
    
	  662:	GA1
	  663:	LIW	   460
	  666:	LIHB	     2
	  670:	WDB	    32

    SDDefs.SD[SDDefs.sBoundsTrap] ← LOOPHOLE[BoundsTrap];
    
	  672:	GA1
	  673:	LIW	   473
	  676:	LIHB	     2
	  700:	WDB	    34

    SDDefs.SD[SDDefs.sPointerTrap] ← LOOPHOLE[PointerTrap];
    
	  702:	GA1
	  703:	LIW	   506
	  706:	LIHB	     2
	  710:	WDB	    36

    SetTest[zRET]};

  
	  712:	LIB	   357
	  714:	ESC	    WRMP


	  716:	LIB	   357
	  720:	SGB	     2
	  722:	RET


Instructions: 65, Bytes: 130

  JumpTests: PROC = {
    
   Entry point: 18,   Frame size index:  0

    SetTest[zJEP];
    
	  724:	LIB	   212
	  726:	ESC	    WRMP


	  730:	LIB	   212

    a ← one;
    
	  732:	LG1
	  733:	SGDB	     2

    b ← two;
    
	  735:	LGB	    10
	  737:	SGB	    23

    IF a # 2 THEN 
	  741:	LGB	     3
	  743:	JEP	 [2,3] (752)

                  a ← one ELSE 
	  745:	LG1
	  746:	SGB	     3
	  750:	JB	    14 (764)

                               Halt[1000+zJEP];
    
	  752:	LIW	  2162
	  755:	ESC	    WRMP


	  757:	LI0
	  760:	SGB	     0
	  762:	JB	   375 (757)

    IF a # 1 THEN 
	  764:	LGB	     3
	  766:	JEP	[1,10] (1002)

                  Halt[2000+zJEP];
    
	  770:	LIW	  4132
	  773:	ESC	    WRMP


	  775:	LI0
	  776:	SGB	     0
	 1000:	JB	   375 (775)

    SetTest[zJEBB];
    
	 1002:	LIB	   214
	 1004:	ESC	    WRMP


	 1006:	LIB	   214

    a ← 40;
    
	 1010:	LIB	    50
	 1012:	SGDB	     2

    b ← one;
    
	 1014:	LG1
	 1015:	SGB	    23

    IF a # 44 THEN 
	 1017:	LGB	     3
	 1021:	JEBB	    54,     11 (1032)

                   a ← 40 ELSE 
	 1024:	LIB	    50
	 1026:	SGB	     3
	 1030:	JB	    14 (1044)

                               Halt[1000+zJEBB];
    
	 1032:	LIW	  2164
	 1035:	ESC	    WRMP


	 1037:	LI0
	 1040:	SGB	     0
	 1042:	JB	   375 (1037)

    IF a # 40 THEN 
	 1044:	LGB	     3
	 1046:	JEBB	    50,     15 (1063)

                   Halt[2000+zJEBB];
    
	 1051:	LIW	  4134
	 1054:	ESC	    WRMP


	 1056:	LI0
	 1057:	SGB	     0
	 1061:	JB	   375 (1056)

    SetTest[zJNEP];
    
	 1063:	LIB	   215
	 1065:	ESC	    WRMP


	 1067:	LIB	   215

    a ← one;
    
	 1071:	LG1
	 1072:	SGDB	     2

    b ← two;
    
	 1074:	LGB	    10
	 1076:	SGB	    23

    IF a = 1 THEN 
	 1100:	LGB	     3
	 1102:	JNEP	 [1,4] (1112)

                  a ← two ELSE 
	 1104:	LGB	    10
	 1106:	SGB	     3
	 1110:	JB	    14 (1124)

                               Halt[1000+zJNEP];
    
	 1112:	LIW	  2165
	 1115:	ESC	    WRMP


	 1117:	LI0
	 1120:	SGB	     0
	 1122:	JB	   375 (1117)

    IF a = 1 THEN 
	 1124:	LGB	     3
	 1126:	JNEP	[1,10] (1142)

                  Halt[2000+zJNEP];
    
	 1130:	LIW	  4135
	 1133:	ESC	    WRMP


	 1135:	LI0
	 1136:	SGB	     0
	 1140:	JB	   375 (1135)

    SetTest[zJNEBB];
    
	 1142:	LIB	   217
	 1144:	ESC	    WRMP


	 1146:	LIB	   217

    a ← 40;
    
	 1150:	LIB	    50
	 1152:	SGDB	     2

    b ← one;
    
	 1154:	LG1
	 1155:	SGB	    23

    IF a = 40 THEN 
	 1157:	LGB	     3
	 1161:	JNEBB	    50,     11 (1172)

                   a ← 44 ELSE 
	 1164:	LIB	    54
	 1166:	SGB	     3
	 1170:	JB	    14 (1204)

                               Halt[1000+zJNEBB];
    
	 1172:	LIW	  2167
	 1175:	ESC	    WRMP


	 1177:	LI0
	 1200:	SGB	     0
	 1202:	JB	   375 (1177)

    IF a = 40 THEN 
	 1204:	LGB	     3
	 1206:	JNEBB	    50,     15 (1223)

                   Halt[2000+zJNEBB];
    
	 1211:	LIW	  4137
	 1214:	ESC	    WRMP


	 1216:	LI0
	 1217:	SGB	     0
	 1221:	JB	   375 (1216)

    SetTest[zRET];
    
	 1223:	LIB	   357
	 1225:	ESC	    WRMP


	 1227:	LIB	   357
	 1231:	SGB	     2

    RETURN};
     
  
  
	 1233:	RET


Instructions: 101, Bytes: 200

  StackTests: PROCEDURE = {
    
   Entry point: 17,   Frame size index:  0

    SetTest[zREC];
    
	 1235:	LIB	   242
	 1237:	ESC	    WRMP


	 1241:	LIB	   242
	 1243:	SGB	     2

    i ← 0;
    DO
      
	 1245:	LI0
	 1246:	SGB	     0

      a ← nine; 
	 1250:	LGB	    24
	 1252:	SGB	     3

                IF REC[] # nine THEN 
	 1254:	REC
	 1255:	LGB	    24
	 1257:	JEB	    14 (1273)

                                     Halt[1000+zREC]; 
      
	 1261:	LIW	  2212
	 1264:	ESC	    WRMP


	 1266:	LI0
	 1267:	SGB	     0
	 1271:	JB	   375 (1266)

      i ← i + one;
      
	 1273:	LGD0
	 1274:	ADD
	 1275:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 1277:	LGB	     4
	 1301:	LG0
	 1302:	JNEB	   346 (1250)

    SetTest[zREC2];
    
	 1304:	LIB	   243
	 1306:	ESC	    WRMP


	 1310:	LIB	   243
	 1312:	SGB	     2

    i ← 0;
    DO
      
	 1314:	LI0
	 1315:	SGB	     0

      aD ← threeFour;
      
	 1317:	LGDB	    21
	 1321:	SGDB	     6

      bD ← REC2[];
      
	 1323:	REC2
	 1324:	SGDB	    25

      IF High[bD] # three OR Low[bD] # four THEN 
	 1326:	LGB	    26
	 1330:	LGB	    13
	 1332:	JNEB	    10 (1342)
	 1334:	LGB	    25
	 1336:	LGB	    16
	 1340:	JEB	    14 (1354)

                                                 Halt[1000+zREC2]; 
      
	 1342:	LIW	  2213
	 1345:	ESC	    WRMP


	 1347:	LI0
	 1350:	SGB	     0
	 1352:	JB	   375 (1347)

      i ← i + one;
      
	 1354:	LGD0
	 1355:	ADD
	 1356:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 1360:	LGB	     4
	 1362:	LG0
	 1363:	JNEB	   334 (1317)

    SetTest[zDIS];
    
	 1365:	LIB	   244
	 1367:	ESC	    WRMP


	 1371:	LIB	   244
	 1373:	SGB	     2

    i ← 0;
    DO
      
	 1375:	LI0
	 1376:	SGB	     0

      DIS[a]; 
	 1400:	LGB	     3
	 1402:	DIS

              IF REC[] # a THEN 
	 1403:	REC
	 1404:	LGB	     3
	 1406:	JEB	    14 (1422)

                                Halt[1000+zDIS]; 
      
	 1410:	LIW	  2214
	 1413:	ESC	    WRMP


	 1415:	LI0
	 1416:	SGB	     0
	 1420:	JB	   375 (1415)

      i ← i + one;
      
	 1422:	LGD0
	 1423:	ADD
	 1424:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 1426:	LGB	     4
	 1430:	LG0
	 1431:	JNEB	   347 (1400)

    SetTest[zDIS2];
    
	 1433:	LIB	   245
	 1435:	ESC	    WRMP


	 1437:	LIB	   245
	 1441:	SGB	     2

    i ← 0;
    DO
      
	 1443:	LI0
	 1444:	SGB	     0

      DIS2[twoFour]; 
      
	 1446:	LGDB	   103
	 1450:	DIS2

      bD ← REC2[];
      
	 1451:	REC2
	 1452:	SGDB	    25

      IF High[bD] # two OR Low[bD] # four THEN 
	 1454:	LGB	    26
	 1456:	LGB	    10
	 1460:	JNEB	    10 (1470)
	 1462:	LGB	    25
	 1464:	LGB	    16
	 1466:	JEB	    14 (1502)

                                               Halt[1000+zDIS2]; 
      
	 1470:	LIW	  2215
	 1473:	ESC	    WRMP


	 1475:	LI0
	 1476:	SGB	     0
	 1500:	JB	   375 (1475)

      i ← i + one;
      
	 1502:	LGD0
	 1503:	ADD
	 1504:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 1506:	LGB	     4
	 1510:	LG0
	 1511:	JNEB	   335 (1446)

    SetTest[zEXCH];
    
	 1513:	LIB	   246
	 1515:	ESC	    WRMP


	 1517:	LIB	   246
	 1521:	SGB	     2

    i ← 0;
    DO
      
	 1523:	LI0
	 1524:	SGB	     0

      [c: a, d: b] ← EXCH[a: one, b: two];
      
	 1526:	LG1
	 1527:	LGB	    10
	 1531:	EXCH
	 1532:	SGB	    23
	 1534:	SGB	     3
	 1536:	REC

      IF a # two OR b # one THEN 
	 1537:	LGB	    10
	 1541:	JNEB	     7 (1550)
	 1543:	LGB	    23
	 1545:	LG1
	 1546:	JEB	    14 (1562)

                                 Halt[1000+zEXCH];
      
	 1550:	LIW	  2216
	 1553:	ESC	    WRMP


	 1555:	LI0
	 1556:	SGB	     0
	 1560:	JB	   375 (1555)

      i ← i + one;
      
	 1562:	LGD0
	 1563:	ADD
	 1564:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 1566:	LGB	     4
	 1570:	LG0
	 1571:	JNEB	   335 (1526)

    SetTest[zDEXCH];
    
	 1573:	LIB	   247
	 1575:	ESC	    WRMP


	 1577:	LIB	   247
	 1601:	SGB	     2

    i ← 0;
    DO
      
	 1603:	LI0
	 1604:	SGB	     0

      [c: aD, d: bD] ← DEXCH[a: oneTwo, b: threeFour];
      
	 1606:	LGDB	    11
	 1610:	LGDB	    21
	 1612:	DEXCH
	 1613:	SGDB	    25
	 1615:	SGDB	     6

      IF High[aD] # three OR Low[aD] # four OR High[bD] # one OR Low[bD] # two THEN
        
	 1617:	LGB	     7
	 1621:	LGB	    13
	 1623:	JNEB	    23 (1646)
	 1625:	LGB	     6
	 1627:	LGB	    16
	 1631:	JNEB	    15 (1646)
	 1633:	LGB	    26
	 1635:	LG1
	 1636:	JNEB	    10 (1646)
	 1640:	LGB	    25
	 1642:	LGB	    10
	 1644:	JEB	    14 (1660)

        Halt[1000+zDEXCH];
      
	 1646:	LIW	  2217
	 1651:	ESC	    WRMP


	 1653:	LI0
	 1654:	SGB	     0
	 1656:	JB	   375 (1653)

      i ← i + one;
      
	 1660:	LGD0
	 1661:	ADD
	 1662:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 1664:	LGB	     4
	 1666:	LG0
	 1667:	JNEB	   317 (1606)

    SetTest[zDUP];
    
	 1671:	LIB	   250
	 1673:	ESC	    WRMP


	 1675:	LIB	   250
	 1677:	SGB	     2

    i ← 0;
    DO
      
	 1701:	LI0
	 1702:	SGB	     0

      [a: a, b: b] ← DUP[six];
      
	 1704:	LGB	    36
	 1706:	DUP
	 1707:	SGB	    23
	 1711:	SGB	     3
	 1713:	REC

      IF a # six OR b # six THEN 
	 1714:	LGB	    36
	 1716:	JNEB	    10 (1726)
	 1720:	LGB	    23
	 1722:	LGB	    36
	 1724:	JEB	    14 (1740)

                                 Halt[1000+zDUP];
      
	 1726:	LIW	  2220
	 1731:	ESC	    WRMP


	 1733:	LI0
	 1734:	SGB	     0
	 1736:	JB	   375 (1733)

      i ← i + one;
      
	 1740:	LGD0
	 1741:	ADD
	 1742:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 1744:	LGB	     4
	 1746:	LG0
	 1747:	JNEB	   335 (1704)

    SetTest[zDDUP];
    
	 1751:	LIB	   251
	 1753:	ESC	    WRMP


	 1755:	LIB	   251
	 1757:	SGB	     2

    i ← 0;
    DO
      
	 1761:	LI0
	 1762:	SGB	     0

      [a: aD, b: bD] ← DDUP[fiveSix];
      
	 1764:	LGDB	    63
	 1766:	DDUP
	 1767:	SGDB	    25
	 1771:	SGDB	     6

      IF High[aD] # five OR Low[aD] # six OR High[bD] # five OR Low[bD] # six THEN 
	 1773:	LGB	     7
	 1775:	LGB	    20
	 1777:	JNEB	    24 (2023)
	 2001:	LGB	     6
	 2003:	LGB	    36
	 2005:	JNEB	    16 (2023)
	 2007:	LGB	    26
	 2011:	LGB	    20
	 2013:	JNEB	    10 (2023)
	 2015:	LGB	    25
	 2017:	LGB	    36
	 2021:	JEB	    14 (2035)

                                                                                   Halt[1000+zDDUP];
      
	 2023:	LIW	  2221
	 2026:	ESC	    WRMP


	 2030:	LI0
	 2031:	SGB	     0
	 2033:	JB	   375 (2030)

      i ← i + one;
      
	 2035:	LGD0
	 2036:	ADD
	 2037:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 2041:	LGB	     4
	 2043:	LG0
	 2044:	JNEB	   320 (1764)

    SetTest[zEXDIS];
    
	 2046:	LIB	   252
	 2050:	ESC	    WRMP


	 2052:	LIB	   252
	 2054:	SGB	     2

    i ← 0;
    DO
      
	 2056:	LI0
	 2057:	SGB	     0

      a ← EXDIS[a: three, b: four]; 
	 2061:	LGB	    13
	 2063:	LGB	    16
	 2065:	EXDIS
	 2066:	SGB	     3
	 2070:	REC

                                    IF a # four THEN 
	 2071:	LGB	    16
	 2073:	JEB	    14 (2107)

                                                     Halt[1000+zEXDIS]; 
      
	 2075:	LIW	  2222
	 2100:	ESC	    WRMP


	 2102:	LI0
	 2103:	SGB	     0
	 2105:	JB	   375 (2102)

      i ← i + one;
      
	 2107:	LGD0
	 2110:	ADD
	 2111:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 2113:	LGB	     4
	 2115:	LG0
	 2116:	JNEB	   343 (2061)

    SetTest[zNEG];
    
	 2120:	LIB	   253
	 2122:	ESC	    WRMP


	 2124:	LIB	   253
	 2126:	SGB	     2

    i ← 0;
    DO
      
	 2130:	LI0
	 2131:	SGB	     0

      a ← NEG[one]; 
	 2133:	LG1
	 2134:	NEG
	 2135:	SGB	     3
	 2137:	REC

                    IF a # allOnes THEN 
	 2140:	LGB	    35
	 2142:	JEB	    14 (2156)

                                        Halt[1000+zNEG]; 
      
	 2144:	LIW	  2223
	 2147:	ESC	    WRMP


	 2151:	LI0
	 2152:	SGB	     0
	 2154:	JB	   375 (2151)

      i ← i + one;
      
	 2156:	LGD0
	 2157:	ADD
	 2160:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 2162:	LGB	     4
	 2164:	LG0
	 2165:	JNEB	   346 (2133)

    SetTest[zINC];
    
	 2167:	LIB	   254
	 2171:	ESC	    WRMP


	 2173:	LIB	   254
	 2175:	SGB	     2

    i ← 0;
    DO
      
	 2177:	LI0
	 2200:	SGB	     0

      a ← INC[one]; 
	 2202:	LG1
	 2203:	INC
	 2204:	SGB	     3
	 2206:	REC

                    IF a # two THEN 
	 2207:	LGB	    10
	 2211:	JEB	    14 (2225)

                                    Halt[1000+zINC]; 
      
	 2213:	LIW	  2224
	 2216:	ESC	    WRMP


	 2220:	LI0
	 2221:	SGB	     0
	 2223:	JB	   375 (2220)

      i ← i + one;
      
	 2225:	LGD0
	 2226:	ADD
	 2227:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 2231:	LGB	     4
	 2233:	LG0
	 2234:	JNEB	   346 (2202)

    SetTest[zDEC];
    
	 2236:	LIB	   255
	 2240:	ESC	    WRMP


	 2242:	LIB	   255
	 2244:	SGB	     2

    i ← 0;
    DO
      
	 2246:	LI0
	 2247:	SGB	     0

      a ← DEC[three]; 
	 2251:	LGB	    13
	 2253:	DEC
	 2254:	SGB	     3
	 2256:	REC

                      IF a # two THEN 
	 2257:	LGB	    10
	 2261:	JEB	    14 (2275)

                                      Halt[1000+zDEC]; 
      
	 2263:	LIW	  2225
	 2266:	ESC	    WRMP


	 2270:	LI0
	 2271:	SGB	     0
	 2273:	JB	   375 (2270)

      i ← i + one;
      
	 2275:	LGD0
	 2276:	ADD
	 2277:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 2301:	LGB	     4
	 2303:	LG0
	 2304:	JNEB	   345 (2251)

    SetTest[zDINC];
    
	 2306:	LIB	   256
	 2310:	ESC	    WRMP


	 2312:	LIB	   256
	 2314:	SGB	     2

    i ← 0;
    DO
      
	 2316:	LI0
	 2317:	SGB	     0

      aD ← DINC[zeroAllOnes];
      
	 2321:	LGDB	    52
	 2323:	DINC
	 2324:	SGDB	     6
	 2326:	REC

      IF Low[aD] # zero OR High[aD] # one THEN 
	 2327:	LGB	     5
	 2331:	JNEB	     7 (2340)
	 2333:	LGB	     7
	 2335:	LG1
	 2336:	JEB	    14 (2352)

                                               Halt[1000+zDINC]; 
      
	 2340:	LIW	  2226
	 2343:	ESC	    WRMP


	 2345:	LI0
	 2346:	SGB	     0
	 2350:	JB	   375 (2345)

      i ← i + one;
      
	 2352:	LGD0
	 2353:	ADD
	 2354:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 2356:	LGB	     4
	 2360:	LG0
	 2361:	JNEB	   340 (2321)

    SetTest[zDBL];
    
	 2363:	LIB	   257
	 2365:	ESC	    WRMP


	 2367:	LIB	   257
	 2371:	SGB	     2

    i ← 0;
    DO
      
	 2373:	LI0
	 2374:	SGB	     0

      a ← DBL[six]; 
	 2376:	LGB	    36
	 2400:	DBL
	 2401:	SGB	     3
	 2403:	REC

                    IF a # twelve THEN 
	 2404:	LGB	    62
	 2406:	JEB	    14 (2422)

                                       Halt[1000+zDBL]; 
      
	 2410:	LIW	  2227
	 2413:	ESC	    WRMP


	 2415:	LI0
	 2416:	SGB	     0
	 2420:	JB	   375 (2415)

      i ← i + one;
      
	 2422:	LGD0
	 2423:	ADD
	 2424:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 2426:	LGB	     4
	 2430:	LG0
	 2431:	JNEB	   345 (2376)

    SetTest[zDDBL];
    
	 2433:	LIB	   260
	 2435:	ESC	    WRMP


	 2437:	LIB	   260
	 2441:	SGB	     2

    i ← 0;
    DO
      
	 2443:	LI0
	 2444:	SGB	     0

      aD ← DDBL[oneTwo];
      
	 2446:	LGDB	    11
	 2450:	DDBL
	 2451:	SGDB	     6

      IF High[aD] # two OR Low[aD] # four THEN 
	 2453:	LGDB	     7
	 2455:	JNEB	    10 (2465)
	 2457:	LGB	     6
	 2461:	LGB	    16
	 2463:	JEB	    14 (2477)

                                               Halt[1000+zDDBL]; 
      
	 2465:	LIW	  2230
	 2470:	ESC	    WRMP


	 2472:	LI0
	 2473:	SGB	     0
	 2475:	JB	   375 (2472)

      i ← i + one;
      
	 2477:	LGD0
	 2500:	ADD
	 2501:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 2503:	LGB	     4
	 2505:	LG0
	 2506:	JNEB	   340 (2446)

    SetTest[zTRPL];
    
	 2510:	LIB	   261
	 2512:	ESC	    WRMP


	 2514:	LIB	   261
	 2516:	SGB	     2

    i ← 0;
    DO
      
	 2520:	LI0
	 2521:	SGB	     0

      a ← TRPL[three]; 
	 2523:	LGB	    13
	 2525:	TRPL
	 2526:	SGB	     3
	 2530:	REC

                       IF a # nine THEN 
	 2531:	LGB	    24
	 2533:	JEB	    14 (2547)

                                        Halt[1000+zTRPL]; 
      
	 2535:	LIW	  2231
	 2540:	ESC	    WRMP


	 2542:	LI0
	 2543:	SGB	     0
	 2545:	JB	   375 (2542)

      i ← i + one;
      
	 2547:	LGD0
	 2550:	ADD
	 2551:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 2553:	LGB	     4
	 2555:	LG0
	 2556:	JNEB	   345 (2523)

    SetTest[zAND];
    
	 2560:	LIB	   262
	 2562:	ESC	    WRMP


	 2564:	LIB	   262
	 2566:	SGB	     2

    i ← 0;
    DO
      
	 2570:	LI0
	 2571:	SGB	     0

      a ← ANDOp[a: three, b: six];
      
	 2573:	LGB	    13
	 2575:	LGB	    36
	 2577:	AND
	 2600:	SGB	     3
	 2602:	REC

      IF a # two THEN 
	 2603:	LGB	    10
	 2605:	JEB	    14 (2621)

                      Halt[1000+zAND]; 
      
	 2607:	LIW	  2232
	 2612:	ESC	    WRMP


	 2614:	LI0
	 2615:	SGB	     0
	 2617:	JB	   375 (2614)

      a ← ANDOp[a: five, b: allOnes];
      
	 2621:	LGB	    20
	 2623:	LGB	    35
	 2625:	AND
	 2626:	SGB	     3
	 2630:	REC

      IF a # five THEN 
	 2631:	LGB	    20
	 2633:	JEB	    14 (2647)

                       Halt[2000+zAND]; 
      
	 2635:	LIW	  4202
	 2640:	ESC	    WRMP


	 2642:	LI0
	 2643:	SGB	     0
	 2645:	JB	   375 (2642)

      a ← ANDOp[a: five, b: zero];
      
	 2647:	LGB	    20
	 2651:	LGB	     5
	 2653:	AND
	 2654:	SGB	     3
	 2656:	REC

      IF a # zero THEN 
	 2657:	LGB	     5
	 2661:	JEB	    14 (2675)

                       Halt[3000+zAND];
      
	 2663:	LIW	  6152
	 2666:	ESC	    WRMP


	 2670:	LI0
	 2671:	SGB	     0
	 2673:	JB	   375 (2670)

      i ← i + one;
      
	 2675:	LGD0
	 2676:	ADD
	 2677:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 2701:	LGB	     4
	 2703:	LG0
	 2704:	JNEB	   267 (2573)

    SetTest[zIOR];
    
	 2706:	LIB	   263
	 2710:	ESC	    WRMP


	 2712:	LIB	   263
	 2714:	SGB	     2

    i ← 0;
    DO
      
	 2716:	LI0
	 2717:	SGB	     0

      a ← IOR[a: three, b: six];
      
	 2721:	LGB	    13
	 2723:	LGB	    36
	 2725:	IOR
	 2726:	SGB	     3
	 2730:	REC

      IF a # seven THEN 
	 2731:	LGB	    54
	 2733:	JEB	    14 (2747)

                        Halt[1000+zIOR]; 
      
	 2735:	LIW	  2233
	 2740:	ESC	    WRMP


	 2742:	LI0
	 2743:	SGB	     0
	 2745:	JB	   375 (2742)

      a ← IOR[a: five, b: allOnes];
      
	 2747:	LGB	    20
	 2751:	LGB	    35
	 2753:	IOR
	 2754:	SGB	     3
	 2756:	REC

      IF a # allOnes THEN 
	 2757:	LGB	    35
	 2761:	JEB	    14 (2775)

                          Halt[2000+zIOR]; 
      
	 2763:	LIW	  4203
	 2766:	ESC	    WRMP


	 2770:	LI0
	 2771:	SGB	     0
	 2773:	JB	   375 (2770)

      a ← IOR[a: five, b: zero];
      
	 2775:	LGB	    20
	 2777:	LGB	     5
	 3001:	IOR
	 3002:	SGB	     3
	 3004:	REC

      IF a # five THEN 
	 3005:	LGB	    20
	 3007:	JEB	    14 (3023)

                       Halt[3000+zIOR];
      
	 3011:	LIW	  6153
	 3014:	ESC	    WRMP


	 3016:	LI0
	 3017:	SGB	     0
	 3021:	JB	   375 (3016)

      i ← i + one;
      
	 3023:	LGD0
	 3024:	ADD
	 3025:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 3027:	LGB	     4
	 3031:	LG0
	 3032:	JNEB	   267 (2721)

    SetTest[zADDSB];
    
	 3034:	LIB	   264
	 3036:	ESC	    WRMP


	 3040:	LIB	   264
	 3042:	SGB	     2

    i ← 0;
    DO
      ADDOne: PROC [CARDINAL] RETURNS [CARDINAL] = MACHINE CODE {zADDSB, 1};
      ADDNegOne: PROC [CARDINAL] RETURNS [CARDINAL] = MACHINE CODE {zADDSB, 377B};
      
	 3044:	LI0
	 3045:	SGB	     0

      a ← ADDOne[four];
      
	 3047:	LGB	    16
	 3051:	ADDSB	     1
	 3053:	SGB	     3
	 3055:	REC

      IF a # five THEN 
	 3056:	LGB	    20
	 3060:	JEB	    14 (3074)

                       Halt[1000+zADDSB]; 
      
	 3062:	LIW	  2234
	 3065:	ESC	    WRMP


	 3067:	LI0
	 3070:	SGB	     0
	 3072:	JB	   375 (3067)

      a ← ADDNegOne[four];
      
	 3074:	LGB	    16
	 3076:	ADDSB	   377
	 3100:	SGB	     3
	 3102:	REC

      IF a # three THEN 
	 3103:	LGB	    13
	 3105:	JEB	    14 (3121)

                        Halt[2000+zADDSB]; 
      
	 3107:	LIW	  4204
	 3112:	ESC	    WRMP


	 3114:	LI0
	 3115:	SGB	     0
	 3117:	JB	   375 (3114)

      i ← i + one;
      
	 3121:	LGD0
	 3122:	ADD
	 3123:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 3125:	LGB	     4
	 3127:	LG0
	 3130:	JNEB	   317 (3047)

    SetTest[zADD];
    
	 3132:	LIB	   265
	 3134:	ESC	    WRMP


	 3136:	LIB	   265
	 3140:	SGB	     2

    i ← 0;
    DO
      
	 3142:	LI0
	 3143:	SGB	     0

      a ← ADD[a: three, b: four];
      
	 3145:	LGB	    13
	 3147:	LGB	    16
	 3151:	ADD
	 3152:	SGB	     3
	 3154:	REC

      IF a # seven THEN 
	 3155:	LGB	    54
	 3157:	JEB	    14 (3173)

                        Halt[1000+zADD]; 
      
	 3161:	LIW	  2235
	 3164:	ESC	    WRMP


	 3166:	LI0
	 3167:	SGB	     0
	 3171:	JB	   375 (3166)

      i ← i + one;
      
	 3173:	LGD0
	 3174:	ADD
	 3175:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 3177:	LGB	     4
	 3201:	LG0
	 3202:	JNEB	   343 (3145)

    SetTest[zSUB];
    
	 3204:	LIB	   266
	 3206:	ESC	    WRMP


	 3210:	LIB	   266
	 3212:	SGB	     2

    i ← 0;
    DO
      
	 3214:	LI0
	 3215:	SGB	     0

      a ← SUB[a: four, b: three];
      
	 3217:	LGB	    16
	 3221:	LGB	    13
	 3223:	SUB
	 3224:	SGB	     3
	 3226:	REC

      IF a # one THEN 
	 3227:	LG1
	 3230:	JEB	    14 (3244)

                      Halt[1000+zSUB]; 
      
	 3232:	LIW	  2236
	 3235:	ESC	    WRMP


	 3237:	LI0
	 3240:	SGB	     0
	 3242:	JB	   375 (3237)

      i ← i + one;
      
	 3244:	LGD0
	 3245:	ADD
	 3246:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 3250:	LGB	     4
	 3252:	LG0
	 3253:	JNEB	   344 (3217)

    SetTest[zDADD];
    
	 3255:	LIB	   267
	 3257:	ESC	    WRMP


	 3261:	LIB	   267
	 3263:	SGB	     2

    i ← 0;
    DO
      
	 3265:	LI0
	 3266:	SGB	     0

      aD ← DADD[a: oneTwo, b: threeFour];
      
	 3270:	LGDB	    11
	 3272:	LGDB	    21
	 3274:	DADD
	 3275:	SGDB	     6

      IF High[aD] # four OR Low[aD] # six THEN 
	 3277:	LGB	     7
	 3301:	LGB	    16
	 3303:	JNEB	    10 (3313)
	 3305:	LGB	     6
	 3307:	LGB	    36
	 3311:	JEB	    14 (3325)

                                               Halt[1000+zDADD];
      
	 3313:	LIW	  2237
	 3316:	ESC	    WRMP


	 3320:	LI0
	 3321:	SGB	     0
	 3323:	JB	   375 (3320)

      aD ← DADD[a: zeroAllOnes, b: one];
      
	 3325:	LGDB	    52
	 3327:	LG1
	 3330:	LI0
	 3331:	DADD
	 3332:	SGDB	     6

      IF High[aD] # one OR Low[aD] # zero THEN 
	 3334:	LGB	     7
	 3336:	LG1
	 3337:	JNEB	    10 (3347)
	 3341:	LGB	     6
	 3343:	LGB	     5
	 3345:	JEB	    14 (3361)

                                               Halt[2000+zDADD]; 
      
	 3347:	LIW	  4207
	 3352:	ESC	    WRMP


	 3354:	LI0
	 3355:	SGB	     0
	 3357:	JB	   375 (3354)

      i ← i + one;
      
	 3361:	LGD0
	 3362:	ADD
	 3363:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 3365:	LGB	     4
	 3367:	LG0
	 3370:	JNEB	   300 (3270)

    SetTest[zDSUB];
    
	 3372:	LIB	   270
	 3374:	ESC	    WRMP


	 3376:	LIB	   270
	 3400:	SGB	     2

    i ← 0;
    DO
      
	 3402:	LI0
	 3403:	SGB	     0

      aD ← DSUB[a: fourSix, b: threeFour];
      
	 3405:	LGDB	    74
	 3407:	LGDB	    21
	 3411:	DSUB
	 3412:	SGDB	     6

      IF High[aD] # one OR Low[aD] # two THEN 
	 3414:	LGB	     7
	 3416:	LG1
	 3417:	JNEB	    10 (3427)
	 3421:	LGB	     6
	 3423:	LGB	    10
	 3425:	JEB	    14 (3441)

                                              Halt[1000+zDSUB];
      
	 3427:	LIW	  2240
	 3432:	ESC	    WRMP


	 3434:	LI0
	 3435:	SGB	     0
	 3437:	JB	   375 (3434)

      aD ← DSUB[a: oneAllZeros, b: one];
      
	 3441:	LGDB	   105
	 3443:	LG1
	 3444:	LI0
	 3445:	DSUB
	 3446:	SGDB	     6

      IF High[aD] # zero OR Low[aD] # allOnes THEN 
	 3450:	LGB	     7
	 3452:	LGB	     5
	 3454:	JNEB	    10 (3464)
	 3456:	LGB	     6
	 3460:	LGB	    35
	 3462:	JEB	    14 (3476)

                                                   Halt[2000+zDSUB]; 
      
	 3464:	LIW	  4210
	 3467:	ESC	    WRMP


	 3471:	LI0
	 3472:	SGB	     0
	 3474:	JB	   375 (3471)

      i ← i + one;
      
	 3476:	LGD0
	 3477:	ADD
	 3500:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 3502:	LGB	     4
	 3504:	LG0
	 3505:	JNEB	   300 (3405)

    SetTest[zACD];
    
	 3507:	LIB	   272
	 3511:	ESC	    WRMP


	 3513:	LIB	   272
	 3515:	SGB	     2

    i ← 0;
    DO
      
	 3517:	LI0
	 3520:	SGB	     0

      aD ← ACD[a: one, b: oneTwo];
      
	 3522:	LG1
	 3523:	LGDB	    11
	 3525:	ACD
	 3526:	SGDB	     6

      IF High[aD] # one OR Low[aD] # three THEN 
	 3530:	LGB	     7
	 3532:	LG1
	 3533:	JNEB	    10 (3543)
	 3535:	LGB	     6
	 3537:	LGB	    13
	 3541:	JEB	    14 (3555)

                                                Halt[1000+zACD];
      
	 3543:	LIW	  2242
	 3546:	ESC	    WRMP


	 3550:	LI0
	 3551:	SGB	     0
	 3553:	JB	   375 (3550)

      aD ← ACD[a: one, b: zeroAllOnes];
      
	 3555:	LG1
	 3556:	LGDB	    52
	 3560:	ACD
	 3561:	SGDB	     6

      IF High[aD] # one OR Low[aD] # zero THEN 
	 3563:	LGB	     7
	 3565:	LG1
	 3566:	JNEB	    10 (3576)
	 3570:	LGB	     6
	 3572:	LGB	     5
	 3574:	JEB	    14 (3610)

                                               Halt[2000+zACD]; 
      
	 3576:	LIW	  4212
	 3601:	ESC	    WRMP


	 3603:	LI0
	 3604:	SGB	     0
	 3606:	JB	   375 (3603)

      i ← i + one;
      
	 3610:	LGD0
	 3611:	ADD
	 3612:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 3614:	LGB	     4
	 3616:	LG0
	 3617:	JNEB	   303 (3522)

    SetTest[zADC];
    
	 3621:	LIB	   271
	 3623:	ESC	    WRMP


	 3625:	LIB	   271
	 3627:	SGB	     2

    i ← 0;
    DO
      
	 3631:	LI0
	 3632:	SGB	     0

      aD ← ADC[a: oneTwo, b: one];
      
	 3634:	LGDB	    11
	 3636:	LG1
	 3637:	ADC
	 3640:	SGDB	     6

      IF High[aD] # one OR Low[aD] # three THEN 
	 3642:	LGB	     7
	 3644:	LG1
	 3645:	JNEB	    10 (3655)
	 3647:	LGB	     6
	 3651:	LGB	    13
	 3653:	JEB	    14 (3667)

                                                Halt[1000+zADC];
      
	 3655:	LIW	  2241
	 3660:	ESC	    WRMP


	 3662:	LI0
	 3663:	SGB	     0
	 3665:	JB	   375 (3662)

      aD ← ADC[a: zeroAllOnes, b: one];
      
	 3667:	LGDB	    52
	 3671:	LG1
	 3672:	ADC
	 3673:	SGDB	     6

      IF High[aD] # one OR Low[aD] # zero THEN 
	 3675:	LGB	     7
	 3677:	LG1
	 3700:	JNEB	    10 (3710)
	 3702:	LGB	     6
	 3704:	LGB	     5
	 3706:	JEB	    14 (3722)

                                               Halt[2000+zADC]; 
      
	 3710:	LIW	  4211
	 3713:	ESC	    WRMP


	 3715:	LI0
	 3716:	SGB	     0
	 3720:	JB	   375 (3715)

      i ← i + one;
      
	 3722:	LGD0
	 3723:	ADD
	 3724:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 3726:	LGB	     4
	 3730:	LG0
	 3731:	JNEB	   303 (3634)

    SetTest[zMUL];
    
	 3733:	LIB	   274
	 3735:	ESC	    WRMP


	 3737:	LIB	   274
	 3741:	SGB	     2

    i ← 0;
    DO
      
	 3743:	LI0
	 3744:	SGB	     0

      [c: a, d: b] ← MUL[a: one, b: three];
      
	 3746:	LG1
	 3747:	LGB	    13
	 3751:	MUL
	 3752:	REC
	 3753:	SGB	    23
	 3755:	SGB	     3
	 3757:	REC

      IF a # three OR b # zero THEN 
	 3760:	LGB	    13
	 3762:	JNEB	    10 (3772)
	 3764:	LGB	    23
	 3766:	LGB	     5
	 3770:	JEB	    14 (4004)

                                    Halt[1000+zMUL];
      
	 3772:	LIW	  2244
	 3775:	ESC	    WRMP


	 3777:	LI0
	 4000:	SGB	     0
	 4002:	JB	   375 (3777)

      [c: a, d: b] ← MUL[a: fourHundred, b: fourHundred];
      
	 4004:	LIHB	     1
	 4006:	DUP
	 4007:	MUL
	 4010:	REC
	 4011:	SGB	    23
	 4013:	SGB	     3
	 4015:	REC

      IF a # zero OR b # one THEN 
	 4016:	LGB	     5
	 4020:	JNEB	     7 (4027)
	 4022:	LGB	    23
	 4024:	LG1
	 4025:	JEB	    14 (4041)

                                  Halt[2000+zMUL]; 
      
	 4027:	LIW	  4214
	 4032:	ESC	    WRMP


	 4034:	LI0
	 4035:	SGB	     0
	 4037:	JB	   375 (4034)

      i ← i + one;
      
	 4041:	LGD0
	 4042:	ADD
	 4043:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 4045:	LGB	     4
	 4047:	LG0
	 4050:	JNEB	   276 (3746)

    SetTest[zDCMP];
    
	 4052:	LIB	   275
	 4054:	ESC	    WRMP


	 4056:	LIB	   275
	 4060:	SGB	     2

    i ← 0;
    DO
      
	 4062:	LI0
	 4063:	SGB	     0

      a ← DCMP[a: FIRST[LONG INTEGER], b: bothZero];
      
	 4065:	LI0
	 4066:	LINI
	 4067:	LGDB	    57
	 4071:	DCMP
	 4072:	SGB	     3
	 4074:	REC

      IF a # allOnes THEN 
	 4075:	LGB	    35
	 4077:	JEB	    14 (4113)

                          Halt[1000+zDCMP];
      
	 4101:	LIW	  2245
	 4104:	ESC	    WRMP


	 4106:	LI0
	 4107:	SGB	     0
	 4111:	JB	   375 (4106)

      a ← DCMP[a: oneTwo, b: oneTwo];
      
	 4113:	LGDB	    11
	 4115:	DDUP
	 4116:	DCMP
	 4117:	SGB	     3
	 4121:	REC

      IF a # zero THEN 
	 4122:	LGB	     5
	 4124:	JEB	    14 (4140)

                       Halt[2000+zDCMP];
      
	 4126:	LIW	  4215
	 4131:	ESC	    WRMP


	 4133:	LI0
	 4134:	SGB	     0
	 4136:	JB	   375 (4133)

      a ← DCMP[a: LAST[LONG INTEGER], b: bothZero];
      
	 4140:	LIN1
	 4141:	LIW	 77777
	 4144:	LGDB	    57
	 4146:	DCMP
	 4147:	SGB	     3
	 4151:	REC

      IF a # one THEN 
	 4152:	LG1
	 4153:	JEB	    14 (4167)

                      Halt[3000+zDCMP]; 
      
	 4155:	LIW	  6165
	 4160:	ESC	    WRMP


	 4162:	LI0
	 4163:	SGB	     0
	 4165:	JB	   375 (4162)

      i ← i + one;
      
	 4167:	LGD0
	 4170:	ADD
	 4171:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 4173:	LGB	     4
	 4175:	LG0
	 4176:	JNEB	   267 (4065)

    SetTest[zUDCMP];
    
	 4200:	LIB	   276
	 4202:	ESC	    WRMP


	 4204:	LIB	   276
	 4206:	SGB	     2

    i ← 0;
    DO
      
	 4210:	LI0
	 4211:	SGB	     0

      a ← UDCMP[a: zero, b: fourSix];
      
	 4213:	LGB	     5
	 4215:	LI0
	 4216:	LGDB	    74
	 4220:	UDCMP
	 4221:	SGB	     3
	 4223:	REC

      IF a # allOnes THEN 
	 4224:	LGB	    35
	 4226:	JEB	    14 (4242)

                          Halt[1000+zUDCMP];
      
	 4230:	LIW	  2246
	 4233:	ESC	    WRMP


	 4235:	LI0
	 4236:	SGB	     0
	 4240:	JB	   375 (4235)

      a ← UDCMP[a: oneTwo, b: oneTwo];
      
	 4242:	LGDB	    11
	 4244:	DDUP
	 4245:	UDCMP
	 4246:	SGB	     3
	 4250:	REC

      IF a # zero THEN 
	 4251:	LGB	     5
	 4253:	JEB	    14 (4267)

                       Halt[2000+zUDCMP];
      
	 4255:	LIW	  4216
	 4260:	ESC	    WRMP


	 4262:	LI0
	 4263:	SGB	     0
	 4265:	JB	   375 (4262)

      a ← UDCMP[a: bothOnes, b: bothZero];
      
	 4267:	LGDB	   101
	 4271:	LGDB	    57
	 4273:	UDCMP
	 4274:	SGB	     3
	 4276:	REC

      IF a # one THEN 
	 4277:	LG1
	 4300:	JEB	    14 (4314)

                      Halt[3000+zUDCMP]; 
      
	 4302:	LIW	  6166
	 4305:	ESC	    WRMP


	 4307:	LI0
	 4310:	SGB	     0
	 4312:	JB	   375 (4307)

      i ← i + one;
      
	 4314:	LGD0
	 4315:	ADD
	 4316:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 4320:	LGB	     4
	 4322:	LG0
	 4323:	JNEB	   270 (4213)

    SetTest[zSHIFT];
    
	 4325:	LIB	   173
	 4327:	ESC	    WRMP


	 4331:	LIB	   173
	 4333:	SGB	     2

    i ← 0;
    DO
      
	 4335:	LI0
	 4336:	SGB	     0

      a ← SHIFT[a: one, b: two];
      
	 4340:	LG1
	 4341:	LGB	    10
	 4343:	SHIFT
	 4344:	SGB	     3
	 4346:	REC

      IF a # four THEN 
	 4347:	LGB	    16
	 4351:	JEB	    14 (4365)

                       Halt[1000+zSHIFT];
      
	 4353:	LIW	  2143
	 4356:	ESC	    WRMP


	 4360:	LI0
	 4361:	SGB	     0
	 4363:	JB	   375 (4360)

      a ← SHIFT[a: one, b: fourHundred];
      
	 4365:	LG1
	 4366:	LIHB	     1
	 4370:	SHIFT
	 4371:	SGB	     3
	 4373:	REC

      IF a # zero THEN 
	 4374:	LGB	     5
	 4376:	JEB	    14 (4412)

                       Halt[2000+zSHIFT];
      
	 4400:	LIW	  4113
	 4403:	ESC	    WRMP


	 4405:	LI0
	 4406:	SGB	     0
	 4410:	JB	   375 (4405)

      a ← SHIFT[a: fourHundred, b: -5];
      
	 4412:	LIHB	     1
	 4414:	LINB	   373
	 4416:	SHIFT
	 4417:	SGB	     3
	 4421:	REC

      IF a # eight THEN 
	 4422:	LGB	    61
	 4424:	JEB	    14 (4440)

                        Halt[3000+zSHIFT];
      
	 4426:	LIW	  6063
	 4431:	ESC	    WRMP


	 4433:	LI0
	 4434:	SGB	     0
	 4436:	JB	   375 (4433)

      i ← i + one;
      
	 4440:	LGD0
	 4441:	ADD
	 4442:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 4444:	LGB	     4
	 4446:	LG0
	 4447:	JNEB	   271 (4340)

    SetTest[zSHIFTSB];
    
	 4451:	LIB	   174
	 4453:	ESC	    WRMP


	 4455:	LIB	   174
	 4457:	SGB	     2

    i ← 0;
    DO
      
	 4461:	LI0
	 4462:	SGB	     0

      a ← three*4;
      
	 4464:	LGB	    13
	 4466:	DBL
	 4467:	DBL
	 4470:	SGB	     3
	 4472:	REC

      IF a # twelve THEN 
	 4473:	LGB	    62
	 4475:	JEB	    14 (4511)

                         Halt[1000+zSHIFTSB];
      
	 4477:	LIW	  2144
	 4502:	ESC	    WRMP


	 4504:	LI0
	 4505:	SGB	     0
	 4507:	JB	   375 (4504)

      a ← fourHundred/200B;
      
	 4511:	LI2
	 4512:	SGB	     3
	 4514:	REC

      IF a # two THEN 
	 4515:	LGB	    10
	 4517:	JEB	    14 (4533)

                      Halt[2000+zSHIFTSB];
      
	 4521:	LIW	  4114
	 4524:	ESC	    WRMP


	 4526:	LI0
	 4527:	SGB	     0
	 4531:	JB	   375 (4526)

      i ← i + one;
      
	 4533:	LGD0
	 4534:	ADD
	 4535:	SGB	     0

      IF loopCount = i THEN EXIT;
      ENDLOOP;
    
	 4537:	LGB	     4
	 4541:	LG0
	 4542:	JNEB	   322 (4464)

    SetTest[zRET];
    
	 4544:	LIB	   357
	 4546:	ESC	    WRMP


	 4550:	LIB	   357
	 4552:	SGB	     2

    RETURN};
    
  Singles: TYPE = RECORD [a, b, c, d, e, f: CARDINAL ← NULL];
  pSingles: POINTER TO Singles;
  lpSingles: LONG POINTER TO Singles;
  singles: Singles;

  Doubles: TYPE = RECORD [a, b, c: LONG CARDINAL ← NULL];
  lpDoubles: LONG POINTER TO Doubles;
  pDoubles: POINTER TO Doubles;
  doubles: Doubles;
  
  Bytes: TYPE = RECORD [
    SELECT OVERLAID * FROM 
      bytes => [bytes: PACKED ARRAY [0..4) OF [0..256)],
      words => [words: ARRAY [0..2) OF CARDINAL],
      ENDCASE];
  lpBytes: LONG POINTER TO Bytes;
  pBytes: POINTER TO Bytes;
  bytes: Bytes;

  Fields: TYPE = RECORD [
    SELECT OVERLAID * FROM 
      fields => [a,b,c,d,e,f,g,h,i,j,k,l: [0..16) ← NULL],
      stackFields => [stackFields: PACKED ARRAY [0..12) OF [0..16)],
      words => [words: ARRAY [0..3) OF CARDINAL],
      ENDCASE];
  lpFields: LONG POINTER TO Fields;
  pFields: POINTER TO Fields;
  fields: Fields;

  
	 4554:	RET


Instructions: 990, Bytes: 1744

  SetupReadTests: PROC = {
    
   Entry point: 20,   Frame size index:  0

    pSingles ← @singles;
    
	 4556:	GAB	    65
	 4560:	SGB	    76

    lpSingles ← @singles;
    
	 4562:	GAB	    65
	 4564:	LP
	 4565:	SGDB	    55

    pDoubles ← @doubles;
    
	 4567:	GAB	    27
	 4571:	SGB	    37

    lpDoubles ← @doubles;
    
	 4573:	GAB	    27
	 4575:	LP
	 4576:	SGDB	    45

    pBytes ← @bytes;
    
	 4600:	GAB	    43
	 4602:	SGB	    47

    lpBytes ← @bytes;
    
	 4604:	GAB	    43
	 4606:	LP
	 4607:	SGDB	    50

    pFields ← @fields;
    
	 4611:	GAB	    40
	 4613:	SGB	    17

    lpFields ← @fields;
    
	 4615:	GAB	    40
	 4617:	LP
	 4620:	SGDB	    14

    RETURN};
  
  
	 4622:	RET


Instructions: 21, Bytes: 38

  ReadWriteTests: PROC = {
    LocalVars: TYPE = RECORD [
      l0, l1: POINTER TO Doubles, l2: LONG POINTER TO Doubles,
      l4: POINTER TO Singles, l5: LONG POINTER TO Singles,
      l7: POINTER TO Fields, l8: LONG POINTER TO Fields];
    
   Entry point: 19,   Frame size index:  2

    locals: LocalVars ← [
      l0: pDoubles, l1: pDoubles, l2: lpDoubles, l4: pSingles, l5: lpSingles,
      l7: pFields, l8: lpFields];
    
	 4624:	LGB	    37
	 4626:	DUP
	 4627:	SLD0
	 4630:	LGDB	    45
	 4632:	SLD2
	 4633:	LGB	    76
	 4635:	SL4
	 4636:	LGDB	    55
	 4640:	SLD5
	 4641:	LGB	    17
	 4643:	SL7
	 4644:	LGDB	    14
	 4646:	SLD8

    SetTest[zRD0];
    
	 4647:	LIB	   105
	 4651:	ESC	    WRMP


	 4653:	LIB	   105
	 4655:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 4657:	LGB	     4
	 4661:	SLB	    13
	 4663:	LI0
	 4664:	JB	    34 (4720)
	 4666:	REC
	 4667:	SL10

      doubles.a ← oneTwo;
      
	 4670:	LGDB	    11
	 4672:	SGDB	    27

      IF pDoubles.a # oneTwo THEN 
	 4674:	LGB	    37
	 4676:	RD0
	 4677:	LGDB	    11
	 4701:	UDCMP
	 4702:	JZB	    14 (4716)

                                  Halt[1000+zRD0]; 
      ENDLOOP;
    
	 4704:	LIW	  2055
	 4707:	ESC	    WRMP


	 4711:	LI0
	 4712:	SGB	     0
	 4714:	JB	   375 (4711)
	 4716:	LL10
	 4717:	INC
	 4720:	LL11
	 4721:	JULB	   345 (4666)

    SetTest[zRDB];
    
	 4723:	LIB	   106
	 4725:	ESC	    WRMP


	 4727:	LIB	   106
	 4731:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 4733:	LGB	     4
	 4735:	SLB	    13
	 4737:	LI0
	 4740:	JB	    35 (4775)
	 4742:	REC
	 4743:	SL10

      doubles.b ← oneTwo;
      
	 4744:	LGDB	    11
	 4746:	SGDB	    31

      IF pDoubles.b # oneTwo THEN 
	 4750:	LGB	    37
	 4752:	RDB	     2
	 4754:	LGDB	    11
	 4756:	UDCMP
	 4757:	JZB	    14 (4773)

                                  Halt[1000+zRDB]; 
      ENDLOOP;
    
	 4761:	LIW	  2056
	 4764:	ESC	    WRMP


	 4766:	LI0
	 4767:	SGB	     0
	 4771:	JB	   375 (4766)
	 4773:	LL10
	 4774:	INC
	 4775:	LL11
	 4776:	JULB	   344 (4742)

    SetTest[zRDL0];
    
	 5000:	LIB	   107
	 5002:	ESC	    WRMP


	 5004:	LIB	   107
	 5006:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 5010:	LGB	     4
	 5012:	SLB	    13
	 5014:	LI0
	 5015:	JB	    34 (5051)
	 5017:	REC
	 5020:	SL10

      doubles.a ← oneTwo;
      
	 5021:	LGDB	    11
	 5023:	SGDB	    27

      IF lpDoubles.a # oneTwo THEN 
	 5025:	LGDB	    45
	 5027:	RDL0
	 5030:	LGDB	    11
	 5032:	UDCMP
	 5033:	JZB	    14 (5047)

                                   Halt[1000+zRDL0]; 
      ENDLOOP;
    
	 5035:	LIW	  2057
	 5040:	ESC	    WRMP


	 5042:	LI0
	 5043:	SGB	     0
	 5045:	JB	   375 (5042)
	 5047:	LL10
	 5050:	INC
	 5051:	LL11
	 5052:	JULB	   345 (5017)

    SetTest[zRDLB];
    
	 5054:	LIB	   110
	 5056:	ESC	    WRMP


	 5060:	LIB	   110
	 5062:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 5064:	LGB	     4
	 5066:	SLB	    13
	 5070:	LI0
	 5071:	JB	    35 (5126)
	 5073:	REC
	 5074:	SL10

      doubles.b ← oneTwo;
      
	 5075:	LGDB	    11
	 5077:	SGDB	    31

      IF lpDoubles.b # oneTwo THEN 
	 5101:	LGDB	    45
	 5103:	RDLB	     2
	 5105:	LGDB	    11
	 5107:	UDCMP
	 5110:	JZB	    14 (5124)

                                   Halt[1000+zRDLB]; 
      ENDLOOP;
    
	 5112:	LIW	  2060
	 5115:	ESC	    WRMP


	 5117:	LI0
	 5120:	SGB	     0
	 5122:	JB	   375 (5117)
	 5124:	LL10
	 5125:	INC
	 5126:	LL11
	 5127:	JULB	   344 (5073)

    SetTest[zPSB];
    
	 5131:	LIB	   113
	 5133:	ESC	    WRMP


	 5135:	LIB	   113
	 5137:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 5141:	LGB	     4
	 5143:	SLB	    13
	 5145:	LI0
	 5146:	JB	    57 (5225)
	 5150:	REC
	 5151:	SL10

      pSingles↑ ← [a: zero, c: one, e: two];
      
	 5152:	LGB	    76
	 5154:	LGB	     5
	 5156:	PSB	     0
	 5160:	LG1
	 5161:	PSB	     2
	 5163:	LGB	    10
	 5165:	PSB	     4
	 5167:	DIS

      IF singles.a # zero OR singles.c # one OR singles.e # two THEN
        
	 5170:	LGB	    65
	 5172:	LGB	     5
	 5174:	JNEB	    15 (5211)
	 5176:	LGB	    67
	 5200:	LG1
	 5201:	JNEB	    10 (5211)
	 5203:	LGB	    71
	 5205:	LGB	    10
	 5207:	JEB	    14 (5223)

        Halt[1000+zPSB]; 
      ENDLOOP;
    
	 5211:	LIW	  2063
	 5214:	ESC	    WRMP


	 5216:	LI0
	 5217:	SGB	     0
	 5221:	JB	   375 (5216)
	 5223:	LL10
	 5224:	INC
	 5225:	LL11
	 5226:	JULB	   322 (5150)

    SetTest[zWLB];
    
	 5230:	LIB	   114
	 5232:	ESC	    WRMP


	 5234:	LIB	   114
	 5236:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 5240:	LGB	     4
	 5242:	SLB	    13
	 5244:	LI0
	 5245:	JB	    34 (5301)
	 5247:	REC
	 5250:	SL10

      lpSingles.a ← four;
      
	 5251:	LGB	    16
	 5253:	LGDB	    55
	 5255:	WLB	     0

      IF singles.a # four THEN 
	 5257:	LGB	    65
	 5261:	LGB	    16
	 5263:	JEB	    14 (5277)

                               Halt[1000+zWLB]; 
      ENDLOOP;
    
	 5265:	LIW	  2064
	 5270:	ESC	    WRMP


	 5272:	LI0
	 5273:	SGB	     0
	 5275:	JB	   375 (5272)
	 5277:	LL10
	 5300:	INC
	 5301:	LL11
	 5302:	JULB	   345 (5247)

    SetTest[zPSLB];
    
	 5304:	LIB	   115
	 5306:	ESC	    WRMP


	 5310:	LIB	   115
	 5312:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 5314:	LGB	     4
	 5316:	SLB	    13
	 5320:	LI0
	 5321:	JB	    57 (5400)
	 5323:	REC
	 5324:	SL10

      lpSingles↑ ← [a: zero, c: one, e: two];
      
	 5325:	LGDB	    55
	 5327:	LGB	     5
	 5331:	PSLB	     0
	 5333:	LG1
	 5334:	PSLB	     2
	 5336:	LGB	    10
	 5340:	PSLB	     4
	 5342:	DIS2

      IF singles.a # zero OR singles.c # one OR singles.e # two THEN
        
	 5343:	LGB	    65
	 5345:	LGB	     5
	 5347:	JNEB	    15 (5364)
	 5351:	LGB	    67
	 5353:	LG1
	 5354:	JNEB	    10 (5364)
	 5356:	LGB	    71
	 5360:	LGB	    10
	 5362:	JEB	    14 (5376)

        Halt[1000+zPSLB]; 
      ENDLOOP;
    
	 5364:	LIW	  2065
	 5367:	ESC	    WRMP


	 5371:	LI0
	 5372:	SGB	     0
	 5374:	JB	   375 (5371)
	 5376:	LL10
	 5377:	INC
	 5400:	LL11
	 5401:	JULB	   322 (5323)

    SetTest[zWDB];
    
	 5403:	LIB	   116
	 5405:	ESC	    WRMP


	 5407:	LIB	   116
	 5411:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 5413:	LGB	     4
	 5415:	SLB	    13
	 5417:	LI0
	 5420:	JB	    35 (5455)
	 5422:	REC
	 5423:	SL10

      pDoubles.a ← oneTwo;
      
	 5424:	LGDB	    11
	 5426:	LGB	    37
	 5430:	WDB	     0

      IF doubles.a # oneTwo THEN 
	 5432:	LGDB	    27
	 5434:	LGDB	    11
	 5436:	UDCMP
	 5437:	JZB	    14 (5453)

                                 Halt[1000+zWDB]; 
      ENDLOOP;
    
	 5441:	LIW	  2066
	 5444:	ESC	    WRMP


	 5446:	LI0
	 5447:	SGB	     0
	 5451:	JB	   375 (5446)
	 5453:	LL10
	 5454:	INC
	 5455:	LL11
	 5456:	JULB	   344 (5422)

    SetTest[zPSD0];
    
	 5460:	LIB	   117
	 5462:	ESC	    WRMP


	 5464:	LIB	   117
	 5466:	SGB	     2

    THROUGH [0..loopCount) DO
      PSD0: PROC [p: POINTER, d: LONG CARDINAL] RETURNS[POINTER] =
        MACHINE CODE {zPSD0};
      
	 5470:	LGB	     4
	 5472:	SLB	    13
	 5474:	LI0
	 5475:	JB	    35 (5532)
	 5477:	REC
	 5500:	SL10

      [] ← PSD0[pDoubles, threeFour];
      
	 5501:	LGB	    37
	 5503:	LGDB	    21
	 5505:	PSD0
	 5506:	DIS

      IF doubles.a # threeFour THEN 
	 5507:	LGDB	    27
	 5511:	LGDB	    21
	 5513:	UDCMP
	 5514:	JZB	    14 (5530)

                                    Halt[1000+zPSD0]; 
      ENDLOOP;
    
	 5516:	LIW	  2067
	 5521:	ESC	    WRMP


	 5523:	LI0
	 5524:	SGB	     0
	 5526:	JB	   375 (5523)
	 5530:	LL10
	 5531:	INC
	 5532:	LL11
	 5533:	JULB	   344 (5477)

    SetTest[zPSDB];
    
	 5535:	LIB	   120
	 5537:	ESC	    WRMP


	 5541:	LIB	   120
	 5543:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 5545:	LGB	     4
	 5547:	SLB	    13
	 5551:	LI0
	 5552:	JB	    51 (5623)
	 5554:	REC
	 5555:	SL10

      pDoubles↑ ← [b: oneTwo, c: fiveSix];
      
	 5556:	LGB	    37
	 5560:	LGDB	    11
	 5562:	PSDB	     2
	 5564:	LGDB	    63
	 5566:	PSDB	     4
	 5570:	DIS

      IF doubles.b # oneTwo OR doubles.c # fiveSix THEN 
	 5571:	LGDB	    31
	 5573:	LGDB	    11
	 5575:	UDCMP
	 5576:	JNZB	    11 (5607)
	 5600:	LGDB	    33
	 5602:	LGDB	    63
	 5604:	UDCMP
	 5605:	JZB	    14 (5621)

                                                        Halt[1000+zPSDB]; 
      ENDLOOP;
    
	 5607:	LIW	  2070
	 5612:	ESC	    WRMP


	 5614:	LI0
	 5615:	SGB	     0
	 5617:	JB	   375 (5614)
	 5621:	LL10
	 5622:	INC
	 5623:	LL11
	 5624:	JULB	   330 (5554)

    SetTest[zWDLB];
    
	 5626:	LIB	   121
	 5630:	ESC	    WRMP


	 5632:	LIB	   121
	 5634:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 5636:	LGB	     4
	 5640:	SLB	    13
	 5642:	LI0
	 5643:	JB	    35 (5700)
	 5645:	REC
	 5646:	SL10

      lpDoubles.a ← oneTwo;
      
	 5647:	LGDB	    11
	 5651:	LGDB	    45
	 5653:	WDLB	     0

      IF doubles.a # oneTwo THEN 
	 5655:	LGDB	    27
	 5657:	LGDB	    11
	 5661:	UDCMP
	 5662:	JZB	    14 (5676)

                                 Halt[1000+zWDLB]; 
      ENDLOOP;
    
	 5664:	LIW	  2071
	 5667:	ESC	    WRMP


	 5671:	LI0
	 5672:	SGB	     0
	 5674:	JB	   375 (5671)
	 5676:	LL10
	 5677:	INC
	 5700:	LL11
	 5701:	JULB	   344 (5645)

    SetTest[zRLI00];
    
	 5703:	LIB	   123
	 5705:	ESC	    WRMP


	 5707:	LIB	   123
	 5711:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 5713:	LGB	     4
	 5715:	SLB	    13
	 5717:	LI0
	 5720:	JB	    31 (5751)
	 5722:	REC
	 5723:	SL10

      doubles.a ← oneTwo;
      
	 5724:	LGDB	    11
	 5726:	SGDB	    27

      IF Low[locals.l0.a] # two THEN 
	 5730:	RLI00
	 5731:	LGB	    10
	 5733:	JEB	    14 (5747)

                                     Halt[1000+zRLI00]; 
      ENDLOOP;
    
	 5735:	LIW	  2073
	 5740:	ESC	    WRMP


	 5742:	LI0
	 5743:	SGB	     0
	 5745:	JB	   375 (5742)
	 5747:	LL10
	 5750:	INC
	 5751:	LL11
	 5752:	JULB	   350 (5722)

    SetTest[zRLI01];
    
	 5754:	LIB	   124
	 5756:	ESC	    WRMP


	 5760:	LIB	   124
	 5762:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 5764:	LGB	     4
	 5766:	SLB	    13
	 5770:	LI0
	 5771:	JB	    30 (6021)
	 5773:	REC
	 5774:	SL10

      doubles.a ← oneTwo;
      
	 5775:	LGDB	    11
	 5777:	SGDB	    27

      IF High[locals.l0.a] # one THEN 
	 6001:	RLI01
	 6002:	LG1
	 6003:	JEB	    14 (6017)

                                      Halt[1000+zRLI01]; 
      ENDLOOP;
    
	 6005:	LIW	  2074
	 6010:	ESC	    WRMP


	 6012:	LI0
	 6013:	SGB	     0
	 6015:	JB	   375 (6012)
	 6017:	LL10
	 6020:	INC
	 6021:	LL11
	 6022:	JULB	   351 (5773)

    SetTest[zRLI02];
    
	 6024:	LIB	   125
	 6026:	ESC	    WRMP


	 6030:	LIB	   125
	 6032:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 6034:	LGB	     4
	 6036:	SLB	    13
	 6040:	LI0
	 6041:	JB	    31 (6072)
	 6043:	REC
	 6044:	SL10

      doubles.b ← oneTwo;
      
	 6045:	LGDB	    11
	 6047:	SGDB	    31

      IF Low[locals.l0.b] # two THEN 
	 6051:	RLI02
	 6052:	LGB	    10
	 6054:	JEB	    14 (6070)

                                     Halt[1000+zRLI02]; 
      ENDLOOP;
    
	 6056:	LIW	  2075
	 6061:	ESC	    WRMP


	 6063:	LI0
	 6064:	SGB	     0
	 6066:	JB	   375 (6063)
	 6070:	LL10
	 6071:	INC
	 6072:	LL11
	 6073:	JULB	   350 (6043)

    SetTest[zRLI03];
    
	 6075:	LIB	   126
	 6077:	ESC	    WRMP


	 6101:	LIB	   126
	 6103:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 6105:	LGB	     4
	 6107:	SLB	    13
	 6111:	LI0
	 6112:	JB	    30 (6142)
	 6114:	REC
	 6115:	SL10

      doubles.b ← oneTwo;
      
	 6116:	LGDB	    11
	 6120:	SGDB	    31

      IF High[locals.l0.b] # one THEN 
	 6122:	RLI03
	 6123:	LG1
	 6124:	JEB	    14 (6140)

                                      Halt[1000+zRLI03]; 
      ENDLOOP;
    
	 6126:	LIW	  2076
	 6131:	ESC	    WRMP


	 6133:	LI0
	 6134:	SGB	     0
	 6136:	JB	   375 (6133)
	 6140:	LL10
	 6141:	INC
	 6142:	LL11
	 6143:	JULB	   351 (6114)

    SetTest[zRLIP];
    
	 6145:	LIB	   127
	 6147:	ESC	    WRMP


	 6151:	LIB	   127
	 6153:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 6155:	LGB	     4
	 6157:	SLB	    13
	 6161:	LI0
	 6162:	JB	    31 (6213)
	 6164:	REC
	 6165:	SL10

      doubles.b ← oneTwo;
      
	 6166:	LGDB	    11
	 6170:	SGDB	    31

      IF High[locals.l1.b] # one THEN 
	 6172:	RLIP	 [1,3]
	 6174:	LG1
	 6175:	JEB	    14 (6211)

                                      Halt[1000+zRLIP]; 
      ENDLOOP;
    
	 6177:	LIW	  2077
	 6202:	ESC	    WRMP


	 6204:	LI0
	 6205:	SGB	     0
	 6207:	JB	   375 (6204)
	 6211:	LL10
	 6212:	INC
	 6213:	LL11
	 6214:	JULB	   350 (6164)

    SetTest[zRLILP];
    
	 6216:	LIB	   130
	 6220:	ESC	    WRMP


	 6222:	LIB	   130
	 6224:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 6226:	LGB	     4
	 6230:	SLB	    13
	 6232:	LI0
	 6233:	JB	    32 (6265)
	 6235:	REC
	 6236:	SL10

      doubles.b ← threeFour;
      
	 6237:	LGDB	    21
	 6241:	SGDB	    31

      IF High[locals.l2.b] # three THEN 
	 6243:	RLILP	 [2,3]
	 6245:	LGB	    13
	 6247:	JEB	    14 (6263)

                                        Halt[1000+zRLILP]; 
      ENDLOOP;
    
	 6251:	LIW	  2100
	 6254:	ESC	    WRMP


	 6256:	LI0
	 6257:	SGB	     0
	 6261:	JB	   375 (6256)
	 6263:	LL10
	 6264:	INC
	 6265:	LL11
	 6266:	JULB	   347 (6235)

    SetTest[zRLDI00];
    
	 6270:	LIB	   131
	 6272:	ESC	    WRMP


	 6274:	LIB	   131
	 6276:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 6300:	LGB	     4
	 6302:	SLB	    13
	 6304:	LI0
	 6305:	JB	    32 (6337)
	 6307:	REC
	 6310:	SL10

      doubles.a ← threeFour;
      
	 6311:	LGDB	    21
	 6313:	SGDB	    27

      IF locals.l0.a # threeFour THEN 
	 6315:	RLDI00
	 6316:	LGDB	    21
	 6320:	UDCMP
	 6321:	JZB	    14 (6335)

                                      Halt[1000+zRLDI00]; 
      ENDLOOP;
    
	 6323:	LIW	  2101
	 6326:	ESC	    WRMP


	 6330:	LI0
	 6331:	SGB	     0
	 6333:	JB	   375 (6330)
	 6335:	LL10
	 6336:	INC
	 6337:	LL11
	 6340:	JULB	   347 (6307)

    SetTest[zRLDIP];
    
	 6342:	LIB	   132
	 6344:	ESC	    WRMP


	 6346:	LIB	   132
	 6350:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 6352:	LGB	     4
	 6354:	SLB	    13
	 6356:	LI0
	 6357:	JB	    33 (6412)
	 6361:	REC
	 6362:	SL10

      doubles.a ← threeFour;
      
	 6363:	LGDB	    21
	 6365:	SGDB	    27

      IF locals.l1.b # threeFour THEN 
	 6367:	RLDIP	 [1,2]
	 6371:	LGDB	    21
	 6373:	UDCMP
	 6374:	JZB	    14 (6410)

                                      Halt[1000+zRLDIP]; 
      ENDLOOP;
    
	 6376:	LIW	  2102
	 6401:	ESC	    WRMP


	 6403:	LI0
	 6404:	SGB	     0
	 6406:	JB	   375 (6403)
	 6410:	LL10
	 6411:	INC
	 6412:	LL11
	 6413:	JULB	   346 (6361)

    SetTest[zRLDILP];
    
	 6415:	LIB	   133
	 6417:	ESC	    WRMP


	 6421:	LIB	   133
	 6423:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 6425:	LGB	     4
	 6427:	SLB	    13
	 6431:	LI0
	 6432:	JB	    33 (6465)
	 6434:	REC
	 6435:	SL10

      doubles.a ← threeFour;
      
	 6436:	LGDB	    21
	 6440:	SGDB	    27

      IF locals.l2.b # threeFour THEN 
	 6442:	RLDILP	 [2,2]
	 6444:	LGDB	    21
	 6446:	UDCMP
	 6447:	JZB	    14 (6463)

                                      Halt[1000+zRLDILP]; 
      ENDLOOP;
    
	 6451:	LIW	  2103
	 6454:	ESC	    WRMP


	 6456:	LI0
	 6457:	SGB	     0
	 6461:	JB	   375 (6456)
	 6463:	LL10
	 6464:	INC
	 6465:	LL11
	 6466:	JULB	   346 (6434)

    SetTest[zWLIP];
    
	 6470:	LIB	   136
	 6472:	ESC	    WRMP


	 6474:	LIB	   136
	 6476:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 6500:	LGB	     4
	 6502:	SLB	    13
	 6504:	LI0
	 6505:	JB	    32 (6537)
	 6507:	REC
	 6510:	SL10

      locals.l4.a ← three;
      
	 6511:	LGB	    13
	 6513:	WLIP	 [4,0]

      IF singles.a # three THEN 
	 6515:	LGB	    65
	 6517:	LGB	    13
	 6521:	JEB	    14 (6535)

                                Halt[1000+zWLIP]; 
      ENDLOOP;
    
	 6523:	LIW	  2106
	 6526:	ESC	    WRMP


	 6530:	LI0
	 6531:	SGB	     0
	 6533:	JB	   375 (6530)
	 6535:	LL10
	 6536:	INC
	 6537:	LL11
	 6540:	JULB	   347 (6507)

    SetTest[zWLILP];
    
	 6542:	LIB	   137
	 6544:	ESC	    WRMP


	 6546:	LIB	   137
	 6550:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 6552:	LGB	     4
	 6554:	SLB	    13
	 6556:	LI0
	 6557:	JB	    30 (6607)
	 6561:	REC
	 6562:	SL10

      locals.l5.b ← one;
      
	 6563:	LG1
	 6564:	WLILP	 [5,1]

      IF singles.b # one THEN 
	 6566:	LGB	    66
	 6570:	LG1
	 6571:	JEB	    14 (6605)

                              Halt[1000+zWLILP]; 
      ENDLOOP;
    
	 6573:	LIW	  2107
	 6576:	ESC	    WRMP


	 6600:	LI0
	 6601:	SGB	     0
	 6603:	JB	   375 (6600)
	 6605:	LL10
	 6606:	INC
	 6607:	LL11
	 6610:	JULB	   351 (6561)

    SetTest[zWLDILP];
    
	 6612:	LIB	   140
	 6614:	ESC	    WRMP


	 6616:	LIB	   140
	 6620:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 6622:	LGB	     4
	 6624:	SLB	    13
	 6626:	LI0
	 6627:	JB	    35 (6664)
	 6631:	REC
	 6632:	SL10

      locals.l2.b ← allOnes;
      
	 6633:	LGB	    35
	 6635:	LI0
	 6636:	WLDILP	 [2,2]

      IF doubles.b # allOnes THEN 
	 6640:	LGB	    35
	 6642:	LI0
	 6643:	LGDB	    31
	 6645:	UDCMP
	 6646:	JZB	    14 (6662)

                                  Halt[1000+zWLDILP]; 
      ENDLOOP;
    
	 6650:	LIW	  2110
	 6653:	ESC	    WRMP


	 6655:	LI0
	 6656:	SGB	     0
	 6660:	JB	   375 (6655)
	 6662:	LL10
	 6663:	INC
	 6664:	LL11
	 6665:	JULB	   344 (6631)

    SetTest[zRS];
    
	 6667:	LIB	   141
	 6671:	ESC	    WRMP


	 6673:	LIB	   141
	 6675:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 6677:	LGB	     4
	 6701:	SLB	    13
	 6703:	LI0
	 6704:	JB	    46 (6752)
	 6706:	REC
	 6707:	SL10

      bytes.words[0] ← fourHundred;
      
	 6710:	LIHB	     1
	 6712:	SGB	    43

      IF pBytes.bytes[zero] # one OR pBytes.bytes[one] # zero THEN 
	 6714:	LGB	    47
	 6716:	LGB	     5
	 6720:	RS	     0
	 6722:	LG1
	 6723:	JNEB	    13 (6736)
	 6725:	LGB	    47
	 6727:	LG1
	 6730:	RS	     0
	 6732:	LGB	     5
	 6734:	JEB	    14 (6750)

                                                                   Halt[1000+zRS]; 
      ENDLOOP;
    
	 6736:	LIW	  2111
	 6741:	ESC	    WRMP


	 6743:	LI0
	 6744:	SGB	     0
	 6746:	JB	   375 (6743)
	 6750:	LL10
	 6751:	INC
	 6752:	LL11
	 6753:	JULB	   333 (6706)

    SetTest[zRLS];
    
	 6755:	LIB	   142
	 6757:	ESC	    WRMP


	 6761:	LIB	   142
	 6763:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 6765:	LGB	     4
	 6767:	SLB	    13
	 6771:	LI0
	 6772:	JB	    46 (7040)
	 6774:	REC
	 6775:	SL10

      bytes.words[0] ← fourHundred;
      
	 6776:	LIHB	     1
	 7000:	SGB	    43

      IF lpBytes.bytes[zero] # one OR lpBytes.bytes[one] # zero THEN
        
	 7002:	LGDB	    50
	 7004:	LGB	     5
	 7006:	RLS	     0
	 7010:	LG1
	 7011:	JNEB	    13 (7024)
	 7013:	LGDB	    50
	 7015:	LG1
	 7016:	RLS	     0
	 7020:	LGB	     5
	 7022:	JEB	    14 (7036)

        Halt[1000+zRLS]; 
      ENDLOOP;
    
	 7024:	LIW	  2112
	 7027:	ESC	    WRMP


	 7031:	LI0
	 7032:	SGB	     0
	 7034:	JB	   375 (7031)
	 7036:	LL10
	 7037:	INC
	 7040:	LL11
	 7041:	JULB	   333 (6774)

    SetTest[zWS];
    
	 7043:	LIB	   143
	 7045:	ESC	    WRMP


	 7047:	LIB	   143
	 7051:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 7053:	LGB	     4
	 7055:	SLB	    13
	 7057:	LI0
	 7060:	JB	    53 (7133)
	 7062:	REC
	 7063:	SL10

      pBytes.bytes[zero] ← zero;
      
	 7064:	LGB	     5
	 7066:	LGB	    47
	 7070:	LGB	     5
	 7072:	WS	     0

      pBytes.bytes[one] ← allOnes;
      
	 7074:	LGB	    35
	 7076:	LGB	    47
	 7100:	LG1
	 7101:	WS	     0

      IF bytes.words[zero] # fourHundred - one THEN 
	 7103:	LIHB	     1
	 7105:	LG1
	 7106:	SUB
	 7107:	LGB	     5
	 7111:	GAB	    43
	 7113:	ADD
	 7114:	R0
	 7115:	JEB	    14 (7131)

                                                    Halt[1000+zWS]; 
      ENDLOOP;
    
	 7117:	LIW	  2113
	 7122:	ESC	    WRMP


	 7124:	LI0
	 7125:	SGB	     0
	 7127:	JB	   375 (7124)
	 7131:	LL10
	 7132:	INC
	 7133:	LL11
	 7134:	JULB	   326 (7062)

    SetTest[zWLS];
    
	 7136:	LIB	   144
	 7140:	ESC	    WRMP


	 7142:	LIB	   144
	 7144:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 7146:	LGB	     4
	 7150:	SLB	    13
	 7152:	LI0
	 7153:	JB	    50 (7223)
	 7155:	REC
	 7156:	SL10

      lpBytes.bytes[two] ← one;
      
	 7157:	LG1
	 7160:	LGDB	    50
	 7162:	LGB	    10
	 7164:	WLS	     0

      lpBytes.bytes[three] ← two;
      
	 7166:	LGB	    10
	 7170:	LGDB	    50
	 7172:	LGB	    13
	 7174:	WLS	     0

      IF bytes.words[1] # (fourHundred + two) THEN 
	 7176:	LGB	    44
	 7200:	LIHB	     1
	 7202:	SUB
	 7203:	LGB	    10
	 7205:	JEB	    14 (7221)

                                                   Halt[1000+zWLS]; 
      ENDLOOP;
    
	 7207:	LIW	  2114
	 7212:	ESC	    WRMP


	 7214:	LI0
	 7215:	SGB	     0
	 7217:	JB	   375 (7214)
	 7221:	LL10
	 7222:	INC
	 7223:	LL11
	 7224:	JULB	   331 (7155)

    SetTest[zR0F];
    
	 7226:	LIB	   145
	 7230:	ESC	    WRMP


	 7232:	LIB	   145
	 7234:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 7236:	LGB	     4
	 7240:	SLB	    13
	 7242:	LI0
	 7243:	JB	    44 (7307)
	 7245:	REC
	 7246:	SL10

      fields.words[0] ← four;
      
	 7247:	LGB	    16
	 7251:	SGB	    40

      IF pFields.a # zero OR pFields.d # four THEN 
	 7253:	LGB	    17
	 7255:	R0F	 [0,3]
	 7257:	LGB	     5
	 7261:	JNEB	    12 (7273)
	 7263:	LGB	    17
	 7265:	R0F	[14,3]
	 7267:	LGB	    16
	 7271:	JEB	    14 (7305)

                                                   Halt[1000+zR0F]; 
      ENDLOOP;
    
	 7273:	LIW	  2115
	 7276:	ESC	    WRMP


	 7300:	LI0
	 7301:	SGB	     0
	 7303:	JB	   375 (7300)
	 7305:	LL10
	 7306:	INC
	 7307:	LL11
	 7310:	JULB	   335 (7245)

    SetTest[zRF];
    
	 7312:	LIB	   146
	 7314:	ESC	    WRMP


	 7316:	LIB	   146
	 7320:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 7322:	LGB	     4
	 7324:	SLB	    13
	 7326:	LI0
	 7327:	JB	    46 (7375)
	 7331:	REC
	 7332:	SL10

      fields.words[1] ← seven;
      
	 7333:	LGB	    54
	 7335:	SGB	    41

      IF pFields.f # zero OR pFields.h # seven THEN 
	 7337:	LGB	    17
	 7341:	RF	     1,  [4,3]
	 7344:	LGB	     5
	 7346:	JNEB	    13 (7361)
	 7350:	LGB	    17
	 7352:	RF	     1, [14,3]
	 7355:	LGB	    54
	 7357:	JEB	    14 (7373)

                                                    Halt[1000+zRF]; 
      ENDLOOP;
    
	 7361:	LIW	  2116
	 7364:	ESC	    WRMP


	 7366:	LI0
	 7367:	SGB	     0
	 7371:	JB	   375 (7366)
	 7373:	LL10
	 7374:	INC
	 7375:	LL11
	 7376:	JULB	   333 (7331)

    SetTest[zRL0F];
    
	 7400:	LIB	   147
	 7402:	ESC	    WRMP


	 7404:	LIB	   147
	 7406:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 7410:	LGB	     4
	 7412:	SLB	    13
	 7414:	LI0
	 7415:	JB	    43 (7460)
	 7417:	REC
	 7420:	SL10

      fields.words[0] ← fourHundred;
      
	 7421:	LIHB	     1
	 7423:	SGB	    40

      IF lpFields.b # one OR lpFields.d # zero THEN 
	 7425:	LGDB	    14
	 7427:	RL0F	 [4,3]
	 7431:	LG1
	 7432:	JNEB	    12 (7444)
	 7434:	LGDB	    14
	 7436:	RL0F	[14,3]
	 7440:	LGB	     5
	 7442:	JEB	    14 (7456)

                                                    Halt[1000+zRL0F]; 
      ENDLOOP;
    
	 7444:	LIW	  2117
	 7447:	ESC	    WRMP


	 7451:	LI0
	 7452:	SGB	     0
	 7454:	JB	   375 (7451)
	 7456:	LL10
	 7457:	INC
	 7460:	LL11
	 7461:	JULB	   336 (7417)

    SetTest[zRLF];
    
	 7463:	LIB	   150
	 7465:	ESC	    WRMP


	 7467:	LIB	   150
	 7471:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 7473:	LGB	     4
	 7475:	SLB	    13
	 7477:	LI0
	 7500:	JB	    46 (7546)
	 7502:	REC
	 7503:	SL10

      fields.words[1] ← nine;
      
	 7504:	LGB	    24
	 7506:	SGB	    41

      IF lpFields.g # zero OR lpFields.h # nine THEN 
	 7510:	LGDB	    14
	 7512:	RLF	     1, [10,3]
	 7515:	LGB	     5
	 7517:	JNEB	    13 (7532)
	 7521:	LGDB	    14
	 7523:	RLF	     1, [14,3]
	 7526:	LGB	    24
	 7530:	JEB	    14 (7544)

                                                     Halt[1000+zRLF]; 
      ENDLOOP;
    
	 7532:	LIW	  2120
	 7535:	ESC	    WRMP


	 7537:	LI0
	 7540:	SGB	     0
	 7542:	JB	   375 (7537)
	 7544:	LL10
	 7545:	INC
	 7546:	LL11
	 7547:	JULB	   333 (7502)

    SetTest[zRLFS];
    
	 7551:	LIB	   151
	 7553:	ESC	    WRMP


	 7555:	LIB	   151
	 7557:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 7561:	LGB	     4
	 7563:	SLB	    13
	 7565:	LI0
	 7566:	JB	    55 (7643)
	 7570:	REC
	 7571:	SL10

      fields.words[0] ← nine;
      
	 7572:	LGB	    24
	 7574:	SGB	    40

      IF lpFields.stackFields[one] # zero
      OR lpFields.stackFields[three] # nine THEN 
	 7576:	LGDB	    14
	 7600:	LG1
	 7601:	SHIFTSB	     6
	 7603:	ADDSB	     3
	 7605:	RLFS
	 7606:	LGB	     5
	 7610:	JNEB	    17 (7627)
	 7612:	LGDB	    14
	 7614:	LGB	    13
	 7616:	SHIFTSB	     6
	 7620:	ADDSB	     3
	 7622:	RLFS
	 7623:	LGB	    24
	 7625:	JEB	    14 (7641)

                                                 Halt[1000+zRLFS]; 
      ENDLOOP;
    
	 7627:	LIW	  2121
	 7632:	ESC	    WRMP


	 7634:	LI0
	 7635:	SGB	     0
	 7637:	JB	   375 (7634)
	 7641:	LL10
	 7642:	INC
	 7643:	LL11
	 7644:	JULB	   324 (7570)

    SetTest[zRLIPF];
    
	 7646:	LIB	   152
	 7650:	ESC	    WRMP


	 7652:	LIB	   152
	 7654:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 7656:	LGB	     4
	 7660:	SLB	    13
	 7662:	LI0
	 7663:	JB	    44 (7727)
	 7665:	REC
	 7666:	SL10

      locals.l7.words[0] ← fourHundred + nine;
      
	 7667:	LGB	    24
	 7671:	LIHB	     1
	 7673:	ADD
	 7674:	WLIP	 [7,0]

      IF locals.l7.b # one OR locals.l7.d # nine THEN
        
	 7676:	RLIPF	 [7,0],  [4,3]
	 7701:	LG1
	 7702:	JNEB	    11 (7713)
	 7704:	RLIPF	 [7,0], [14,3]
	 7707:	LGB	    24
	 7711:	JEB	    14 (7725)

        Halt[1000+zRLIPF]; 
      ENDLOOP;
    
	 7713:	LIW	  2122
	 7716:	ESC	    WRMP


	 7720:	LI0
	 7721:	SGB	     0
	 7723:	JB	   375 (7720)
	 7725:	LL10
	 7726:	INC
	 7727:	LL11
	 7730:	JULB	   335 (7665)

    SetTest[zRLILPF];
    
	 7732:	LIB	   153
	 7734:	ESC	    WRMP


	 7736:	LIB	   153
	 7740:	SGB	     2

    THROUGH [0..loopCount) DO
      
	 7742:	LGB	     4
	 7744:	SLB	    13
	 7746:	LI0
	 7747:	JB	    44 (10013)
	 7751:	REC
	 7752:	SL10

      locals.l7.words[1] ← fourHundred + ten;
      
	 7753:	LGB	    73
	 7755:	LIHB	     1
	 7757:	ADD
	 7760:	WLIP	 [7,1]

      IF locals.l8.f # one OR locals.l8.h # ten THEN
        
	 7762:	RLILPF	[10,1],  [4,3]
	 7765:	LG1
	 7766:	JNEB	    11 (7777)
	 7770:	RLILPF	[10,1], [14,3]
	 7773:	LGB	    73
	 7775:	JEB	    14 (10011)

        Halt[1000+zRLILPF]; 
      ENDLOOP;
    
	 7777:	LIW	  2123
	10002:	ESC	    WRMP


	10004:	LI0
	10005:	SGB	     0
	10007:	JB	   375 (10004)
	10011:	LL10
	10012:	INC
	10013:	LL11
	10014:	JULB	   335 (7751)

    SetTest[zW0F];
    
	10016:	LIB	   154
	10020:	ESC	    WRMP


	10022:	LIB	   154
	10024:	SGB	     2

    THROUGH [0..loopCount) DO
      
	10026:	LGB	     4
	10030:	SLB	    13
	10032:	LI0
	10033:	JB	    52 (10105)
	10035:	REC
	10036:	SL10

      pFields.a ← one;
      
	10037:	LG1
	10040:	LGB	    17
	10042:	W0F	 [0,3]

      pFields.c ← four;
      
	10044:	LGB	    16
	10046:	LGB	    17
	10050:	W0F	[10,3]

      IF pFields.a # one OR pFields.c # four THEN 
	10052:	LGB	    17
	10054:	R0F	 [0,3]
	10056:	LG1
	10057:	JNEB	    12 (10071)
	10061:	LGB	    17
	10063:	R0F	[10,3]
	10065:	LGB	    16
	10067:	JEB	    14 (10103)

                                                  Halt[1000+zW0F]; 
      ENDLOOP;
    
	10071:	LIW	  2124
	10074:	ESC	    WRMP


	10076:	LI0
	10077:	SGB	     0
	10101:	JB	   375 (10076)
	10103:	LL10
	10104:	INC
	10105:	LL11
	10106:	JULB	   327 (10035)

    SetTest[zWF];
    
	10110:	LIB	   155
	10112:	ESC	    WRMP


	10114:	LIB	   155
	10116:	SGB	     2

    THROUGH [0..loopCount) DO
      
	10120:	LGB	     4
	10122:	SLB	    13
	10124:	LI0
	10125:	JB	    56 (10203)
	10127:	REC
	10130:	SL10

      pFields.e ← one;
      
	10131:	LG1
	10132:	LGB	    17
	10134:	WF	     1,  [0,3]

      pFields.f ← four;
      
	10137:	LGB	    16
	10141:	LGB	    17
	10143:	WF	     1,  [4,3]

      IF pFields.e # one OR pFields.f # four THEN 
	10146:	LGB	    17
	10150:	RF	     1,  [0,3]
	10153:	LG1
	10154:	JNEB	    13 (10167)
	10156:	LGB	    17
	10160:	RF	     1,  [4,3]
	10163:	LGB	    16
	10165:	JEB	    14 (10201)

                                                  Halt[1000+zWF]; 
      ENDLOOP;
    
	10167:	LIW	  2125
	10172:	ESC	    WRMP


	10174:	LI0
	10175:	SGB	     0
	10177:	JB	   375 (10174)
	10201:	LL10
	10202:	INC
	10203:	LL11
	10204:	JULB	   323 (10127)

    SetTest[zPS0F];
    
	10206:	LIB	   157
	10210:	ESC	    WRMP


	10212:	LIB	   157
	10214:	SGB	     2

    THROUGH [0..loopCount) DO
      
	10216:	LGB	     4
	10220:	SLB	    13
	10222:	LI0
	10223:	JB	   112 (10335)
	10225:	REC
	10226:	SL10

      pFields↑ ← [fields[a: one, b: two, c: three, d: five]];
      
	10227:	LGB	    17
	10231:	LG1
	10232:	PS0F	 [0,3]
	10234:	LGB	    10
	10236:	PS0F	 [4,3]
	10240:	LGB	    13
	10242:	PS0F	[10,3]
	10244:	LGB	    20
	10246:	WS0F	[14,3]

      IF pFields.a # one OR pFields.b # two OR pFields.c # three THEN
        
	10250:	LGB	    17
	10252:	R0F	 [0,3]
	10254:	LG1
	10255:	JNEB	    22 (10277)
	10257:	LGB	    17
	10261:	R0F	 [4,3]
	10263:	LGB	    10
	10265:	JNEB	    12 (10277)
	10267:	LGB	    17
	10271:	R0F	[10,3]
	10273:	LGB	    13
	10275:	JEB	    14 (10311)

        Halt[1000+zPS0F]; 
      
	10277:	LIW	  2127
	10302:	ESC	    WRMP


	10304:	LI0
	10305:	SGB	     0
	10307:	JB	   375 (10304)

      IF pFields.d # five THEN 
	10311:	LGB	    17
	10313:	R0F	[14,3]
	10315:	LGB	    20
	10317:	JEB	    14 (10333)

                               Halt[1000+zWS0F]; 
      ENDLOOP;
    
	10321:	LIW	  2130
	10324:	ESC	    WRMP


	10326:	LI0
	10327:	SGB	     0
	10331:	JB	   375 (10326)
	10333:	LL10
	10334:	INC
	10335:	LL11
	10336:	JULB	   267 (10225)

    SetTest[zWL0F];
    
	10340:	LIB	   161
	10342:	ESC	    WRMP


	10344:	LIB	   161
	10346:	SGB	     2

    THROUGH [0..loopCount) DO
      
	10350:	LGB	     4
	10352:	SLB	    13
	10354:	LI0
	10355:	JB	    52 (10427)
	10357:	REC
	10360:	SL10

      lpFields.a ← one;
      
	10361:	LG1
	10362:	LGDB	    14
	10364:	WL0F	     3

      lpFields.c ← four;
      
	10366:	LGB	    16
	10370:	LGDB	    14
	10372:	WL0F	   203

      IF lpFields.a # one OR lpFields.c # four THEN 
	10374:	LGDB	    14
	10376:	RL0F	 [0,3]
	10400:	LG1
	10401:	JNEB	    12 (10413)
	10403:	LGDB	    14
	10405:	RL0F	[10,3]
	10407:	LGB	    16
	10411:	JEB	    14 (10425)

                                                    Halt[1000+zWL0F]; 
      ENDLOOP;
    
	10413:	LIW	  2131
	10416:	ESC	    WRMP


	10420:	LI0
	10421:	SGB	     0
	10423:	JB	   375 (10420)
	10425:	LL10
	10426:	INC
	10427:	LL11
	10430:	JULB	   327 (10357)

    SetTest[zWLF];
    
	10432:	LIB	   162
	10434:	ESC	    WRMP


	10436:	LIB	   162
	10440:	SGB	     2

    THROUGH [0..loopCount) DO
      
	10442:	LGB	     4
	10444:	SLB	    13
	10446:	LI0
	10447:	JB	    60 (10527)
	10451:	REC
	10452:	SL10

      lpFields.e ← two;
      
	10453:	LGB	    10
	10455:	LGDB	    14
	10457:	WLF	     1,  [0,3]

      lpFields.h ← eight;
      
	10462:	LGB	    61
	10464:	LGDB	    14
	10466:	WLF	     1, [14,3]

      IF lpFields.e # two OR lpFields.h # eight THEN 
	10471:	LGDB	    14
	10473:	RLF	     1,  [0,3]
	10476:	LGB	    10
	10500:	JNEB	    13 (10513)
	10502:	LGDB	    14
	10504:	RLF	     1, [14,3]
	10507:	LGB	    61
	10511:	JEB	    14 (10525)

                                                     Halt[1000+zWLF]; 
      ENDLOOP;
    
	10513:	LIW	  2132
	10516:	ESC	    WRMP


	10520:	LI0
	10521:	SGB	     0
	10523:	JB	   375 (10520)
	10525:	LL10
	10526:	INC
	10527:	LL11
	10530:	JULB	   321 (10451)

    SetTest[zPSLF];
    
	10532:	LIB	   163
	10534:	ESC	    WRMP


	10536:	LIB	   163
	10540:	SGB	     2

    THROUGH [0..loopCount) DO
      
	10542:	LGB	     4
	10544:	SLB	    13
	10546:	LI0
	10547:	JB	   105 (10654)
	10551:	REC
	10552:	SL10

      lpFields↑ ← [fields[a: one, b: two, c: three, d: five]];
      
	10553:	LGDB	    14
	10555:	LG1
	10556:	PSLF	     0,  [0,3]
	10561:	LGB	    10
	10563:	PSLF	     0,  [4,3]
	10566:	LGB	    13
	10570:	PSLF	     0, [10,3]
	10573:	LGB	    20
	10575:	PSLF	     0, [14,3]
	10600:	DIS2

      IF lpFields.a # one OR lpFields.b # two OR lpFields.c # three
      OR lpFields.d # five THEN 
	10601:	LGDB	    14
	10603:	RL0F	 [0,3]
	10605:	LG1
	10606:	JNEB	    32 (10640)
	10610:	LGDB	    14
	10612:	RL0F	 [4,3]
	10614:	LGB	    10
	10616:	JNEB	    22 (10640)
	10620:	LGDB	    14
	10622:	RL0F	[10,3]
	10624:	LGB	    13
	10626:	JNEB	    12 (10640)
	10630:	LGDB	    14
	10632:	RL0F	[14,3]
	10634:	LGB	    20
	10636:	JEB	    14 (10652)

                                Halt[1000+zPSLF]; 
      ENDLOOP;
    
	10640:	LIW	  2133
	10643:	ESC	    WRMP


	10645:	LI0
	10646:	SGB	     0
	10650:	JB	   375 (10645)
	10652:	LL10
	10653:	INC
	10654:	LL11
	10655:	JULB	   274 (10551)

    SetTest[zWLFS];
    
	10657:	LIB	   164
	10661:	ESC	    WRMP


	10663:	LIB	   164
	10665:	SGB	     2

    THROUGH [0..loopCount) DO
      
	10667:	LGB	     4
	10671:	SLB	    13
	10673:	LI0
	10674:	JB	    54 (10750)
	10676:	REC
	10677:	SL10

      lpFields.stackFields[1] ← zero;
      
	10700:	LGB	     5
	10702:	LGDB	    14
	10704:	WL0F	   103

      lpFields.stackFields[3] ← nine;
      
	10706:	LGB	    24
	10710:	LGDB	    14
	10712:	WL0F	   303

      IF lpFields.stackFields[1] # zero OR lpFields.stackFields[3] # nine THEN
        
	10714:	LGDB	    14
	10716:	RL0F	 [4,3]
	10720:	LGB	     5
	10722:	JNEB	    12 (10734)
	10724:	LGDB	    14
	10726:	RL0F	[14,3]
	10730:	LGB	    24
	10732:	JEB	    14 (10746)

        Halt[1000+zWLFS]; 
      ENDLOOP;
    
	10734:	LIW	  2134
	10737:	ESC	    WRMP


	10741:	LI0
	10742:	SGB	     0
	10744:	JB	   375 (10741)
	10746:	LL10
	10747:	INC
	10750:	LL11
	10751:	JULB	   325 (10676)

    SetTest[zRET];
    
	10753:	LIB	   357
	10755:	ESC	    WRMP


	10757:	LIB	   357
	10761:	SGB	     2

    RETURN}; 

  
	10763:	RET


Instructions: 1222, Bytes: 2144

  ExternalTests: PROC = {
    
   Entry point: 21,   Frame size index:  0

    SetTest[zEFCB];
    
	10765:	LIB	   354
	10767:	ESC	    WRMP


	10771:	LIB	   354
	10773:	SGB	     2

    EmulatorTest.InitHelper[]; 
    
	10775:	EFC0

    SetTest[zRKIB];
    
	10776:	LIB	   170
	11000:	ESC	    WRMP


	11002:	LIB	   170
	11004:	SGB	     2

    THROUGH [0..loopCount) DO
      
	11006:	LGB	     4
	11010:	SL1
	11011:	LI0
	11012:	JB	    30 (11042)
	11014:	REC
	11015:	SL0

      a ← EmulatorTest.varOne;
      
	11016:	RKIB	     3
	11020:	SGB	     3
	11022:	REC

      IF a # one THEN 
	11023:	LG1
	11024:	JEB	    14 (11040)

                      Halt[1000+zRKIB]; 
      ENDLOOP;
    
	11026:	LIW	  2140
	11031:	ESC	    WRMP


	11033:	LI0
	11034:	SGB	     0
	11036:	JB	   375 (11033)
	11040:	LL0
	11041:	INC
	11042:	LL1
	11043:	JULB	   351 (11014)

    SetTest[zRKDIB];
    
	11045:	LIB	   171
	11047:	ESC	    WRMP


	11051:	LIB	   171
	11053:	SGB	     2

    THROUGH [0..loopCount) DO
      
	11055:	LGB	     4
	11057:	SL1
	11060:	LI0
	11061:	JB	    32 (11113)
	11063:	REC
	11064:	SL0

      aD ← EmulatorTest.varOneTwo;
      
	11065:	RKDIB	     2
	11067:	SGDB	     6
	11071:	REC2

      IF aD # varOneTwo THEN 
	11072:	RKDIB	     2
	11074:	UDCMP
	11075:	JZB	    14 (11111)

                             Halt[1000+zRKDIB]; 
      ENDLOOP;
    
	11077:	LIW	  2141
	11102:	ESC	    WRMP


	11104:	LI0
	11105:	SGB	     0
	11107:	JB	   375 (11104)
	11111:	LL0
	11112:	INC
	11113:	LL1
	11114:	JULB	   347 (11063)

    SetTest[zEFCB];
    
	11116:	LIB	   354
	11120:	ESC	    WRMP


	11122:	LIB	   354
	11124:	SGB	     2

    proc ← EmulatorTest.Proc[];
    
	11126:	EFC1
	11127:	SGDB	    77

    SetTest[zLLKB];
    
	11131:	LIB	   167
	11133:	ESC	    WRMP


	11135:	LIB	   167
	11137:	SGB	     2

    THROUGH [0..loopCount) DO
      
	11141:	LGB	     4
	11143:	SL1
	11144:	LI0
	11145:	JB	    27 (11174)
	11147:	REC
	11150:	SL0

      IF EmulatorTest.InitHelper # proc THEN 
	11151:	LLKB	     0
	11153:	LGDB	    77
	11155:	DCMP
	11156:	JZB	    14 (11172)

                                             Halt[1000+zLLKB]; 
      ENDLOOP;
    
	11160:	LIW	  2137
	11163:	ESC	    WRMP


	11165:	LI0
	11166:	SGB	     0
	11170:	JB	   375 (11165)
	11172:	LL0
	11173:	INC
	11174:	LL1
	11175:	JULB	   352 (11147)

    SetTest[zRET];
    
	11177:	LIB	   357
	11201:	ESC	    WRMP


	11203:	LIB	   357
	11205:	SGB	     2

    RETURN}; 
      
        -- Start Tests
  
  
	11207:	RET


Instructions: 88, Bytes: 148


Total instructions: 2657, Bytes: 4718