
             Edinburgh IMP77 Compiler - Version 8.4


        LANG 0000
        PUSHI #0x00000000
        DEF V_0001 NIL  record, name, format=0, constant
        INIT 1
        DEF V_0002 REM  integer, function, format=1, prim-spec-indirect
        START
        DEF V_0003 P  integer, simple, format=1, 0
        DEF V_0004 Q  integer, simple, format=1, 0
        FINISH
        DEF V_0003 FLOAT  real, function, format=1, prim-spec-indirect
        START
        DEF V_0004 N  integer, simple, format=1, 0
        FINISH
        DEF V_0004 TOSTRING  string, function, format=1, prim-spec-indirect
        START
        DEF V_0005 C  integer, simple, format=1, 0
        FINISH
        DEF V_0005 ADDR  integer, function, format=1, prim-spec-indirect
        START
        DEF V_0006 P  type=0, name, format=0, 0
        FINISH
        DEF V_0006 INTEGER  integer, map, format=1, prim-spec
        START
        DEF V_0007 N  integer, simple, format=1, 0
        FINISH
        DEF V_0007 BYTEINTEGER  byte-integer, map, format=2, prim-spec
        START
        DEF V_0008 N  integer, simple, format=1, 0
        FINISH
        DEF V_0008 STRING  string, map, format=0, prim-spec
        START
        DEF V_0009 N  integer, simple, format=1, 0
        FINISH
        DEF V_0009 RECORD  record, map, format=0, prim-spec
        START
        DEF V_000a N  integer, simple, format=1, 0
        FINISH
        DEF V_000a REAL  real, map, format=1, prim-spec
        START
        DEF V_000b N  integer, simple, format=1, 0
        FINISH
        DEF V_000b LONGREAL  long-real, map, format=4, prim-spec
        START
        DEF V_000c N  integer, simple, format=1, 0
        FINISH
        DEF V_000c LENGTH  byte-integer, map, format=2, prim-spec
        START
        DEF V_000d S  string, simple, format=255, 0
        FINISH
        DEF V_000d CHARNO  byte-integer, map, format=2, prim-spec
        START
        DEF V_000e S  string, simple, format=255, 0
        DEF V_000f N  integer, simple, format=1, 0
        FINISH
        DEF V_000e INT  integer, function, format=1, prim-spec-indirect
        START
        DEF V_000f R  long-real, simple, format=4, 0
        FINISH
        DEF V_000f SHORTINTEGER  short-integer, map, format=3, prim-spec
        START
        DEF V_0010 N  integer, simple, format=1, 0
        FINISH
        DEF V_0010 TYPEOF  integer, function, format=1, external-spec-indirect
        START
        DEF V_0011 N  type=0, name, format=0, 0
        FINISH
        DEF V_0011 SIZEOF  integer, function, format=1, external-spec-indirect
        START
        DEF V_0012 N  type=0, name, format=0, 0
        FINISH
        DEF V_0012 TYPENAME  string, function, format=255, external-spec-indirect
        START
        DEF V_0013 T  integer, simple, format=1, 0
        FINISH
        DEF V_0013 ARRAYENTRYSIZE  integer, function, format=1, external-spec-indirect
        START
        DEF V_0014 N  type=0, name, format=0, 0
        FINISH
        DEF V_0014 ARRAYENTRYTYPE  integer, function, format=1, external-spec-indirect
        START
        DEF V_0015 N  type=0, name, format=0, 0
        FINISH
        DEF V_0015 ARRAYDIMENSIONS  integer, function, format=1, external-spec-indirect
        START
        DEF V_0016 N  type=0, name, format=0, 0
        FINISH
        DEF V_0016 ARRAYLOWERBOUND  integer, function, format=1, external-spec-indirect
        START
        DEF V_0017 N  type=0, name, format=0, 0
        DEF V_0018 INDEX  integer, simple, format=1, 0
        FINISH
        DEF V_0017 ARRAYUPPERBOUND  integer, function, format=1, external-spec-indirect
        START
        DEF V_0018 N  type=0, name, format=0, 0
        DEF V_0019 INDEX  integer, simple, format=1, 0
        FINISH
        DEF V_0018 EVENTFM  record, record-format, format=24, 0
        START
        DEF V_0000 EVENT  integer, simple, format=1, 0
        DEF V_0000 SUB  integer, simple, format=1, 0
        DEF V_0000 INFO  integer, simple, format=1, 0
        DEF V_0000 LINE  integer, simple, format=1, 0
        DEF V_0000 MESSAGE  string, simple, format=255, 0
        FINISH
        DEF V_0019 EVENT  record, map, format=24, external-spec
        START
        FINISH
        DEF V_001a INPUTSTREAM  integer, function, format=1, external-spec-indirect
        START
        FINISH
        DEF V_001b INPUTNAME  string, function, format=255, external-spec-indirect
        START
        FINISH
        DEF V_001c SELECTINPUT  type=0, routine, format=0, external-spec
        START
        DEF V_001d N  integer, simple, format=1, 0
        FINISH
        DEF V_001d OPENINPUT  type=0, routine, format=0, external-spec
        START
        DEF V_001e N  integer, simple, format=1, 0
        DEF V_001f FD  string, simple, format=255, 0
        FINISH
        DEF V_001e OPENBINARYINPUT  type=0, routine, format=0, external-spec
        START
        DEF V_001f N  integer, simple, format=1, 0
        DEF V_0020 FD  string, simple, format=255, 0
        FINISH
        DEF V_001f CLOSEINPUT  type=0, routine, format=0, external-spec
        START
        FINISH
        DEF V_0020 RESETINPUT  type=0, routine, format=0, external-spec
        START
        FINISH
        DEF V_0021 SEEKINPUT  type=0, routine, format=0, external-spec
        START
        DEF V_0022 DISPLACEMENT  integer, simple, format=1, 0
        DEF V_0023 STARTPOINT  integer, simple, format=1, 0
        FINISH
        DEF V_0022 TELLINPUT  integer, function, format=1, external-spec-indirect
        START
        FINISH
        DEF V_0023 READSYMBOL  type=0, routine, format=0, external-spec
        START
        DEF V_0024 P  type=0, name, format=0, 0
        FINISH
        DEF V_0024 NEXTSYMBOL  integer, function, format=1, external-spec-indirect
        START
        FINISH
        DEF V_0025 READBUFFER  integer, function, format=1, external-spec-indirect
        START
        DEF V_0026 PTR  type=0, name, format=0, 0
        DEF V_0027 COUNT  integer, simple, format=1, 0
        FINISH
        DEF V_0026 PROMPT  type=0, routine, format=0, external-spec
        START
        DEF V_0027 S  string, simple, format=31, 0
        FINISH
        DEF V_0027 CURRENTPROMPT  string, function, format=31, external-spec-indirect
        START
        FINISH
        DEF V_0028 GETMAXINPUTSTREAM  integer, function, format=1, external-spec-indirect
        START
        FINISH
        DEF V_0029 FILEEND  type=0, predicate, format=0, external-spec
        START
        FINISH
        DEF V_002a ALLOWEOFEVENT  type=0, routine, format=0, external-spec
        START
        FINISH
        DEF V_002b BLOCKEOFEVENT  type=0, routine, format=0, external-spec
        START
        FINISH
        DEF V_002c OUTPUTSTREAM  integer, function, format=1, external-spec-indirect
        START
        FINISH
        DEF V_002d OUTPUTNAME  string, function, format=255, external-spec-indirect
        START
        FINISH
        DEF V_002e SELECTOUTPUT  type=0, routine, format=0, external-spec
        START
        DEF V_002f N  integer, simple, format=1, 0
        FINISH
        DEF V_002f OPENOUTPUT  type=0, routine, format=0, external-spec
        START
        DEF V_0030 N  integer, simple, format=1, 0
        DEF V_0031 FD  string, simple, format=255, 0
        FINISH
        DEF V_0030 OPENBINARYOUTPUT  type=0, routine, format=0, external-spec
        START
        DEF V_0031 N  integer, simple, format=1, 0
        DEF V_0032 FD  string, simple, format=255, 0
        FINISH
        DEF V_0031 CLOSEOUTPUT  type=0, routine, format=0, external-spec
        START
        FINISH
        DEF V_0032 RESETOUTPUT  type=0, routine, format=0, external-spec
        START
        FINISH
        DEF V_0033 SEEKOUTPUT  type=0, routine, format=0, external-spec
        START
        DEF V_0034 DISPLACEMENT  integer, simple, format=1, 0
        DEF V_0035 STARTPOINT  integer, simple, format=1, 0
        FINISH
        DEF V_0034 TELLOUTPUT  integer, function, format=1, external-spec-indirect
        START
        FINISH
        DEF V_0035 PRINTSYMBOL  type=0, routine, format=0, external-spec
        START
        DEF V_0036 SYM  integer, simple, format=1, 0
        FINISH
        DEF V_0036 WRITEBUFFER  integer, function, format=1, external-spec-indirect
        START
        DEF V_0037 PTR  type=0, name, format=0, 0
        DEF V_0038 COUNT  integer, simple, format=1, 0
        FINISH
        DEF V_0037 DEBUGSYMBOL  type=0, routine, format=0, external-spec
        START
        DEF V_0038 SYM  integer, simple, format=1, 0
        FINISH
        DEF V_0038 DEBUGREAL  type=0, routine, format=0, external-spec
        START
        DEF V_0039 D  long-real, simple, format=4, 0
        FINISH
        DEF V_0039 GETMAXOUTPUTSTREAM  integer, function, format=1, external-spec-indirect
        START
        FINISH
        DEF V_003a FLUSHOUTPUT  type=0, routine, format=0, external-spec
        START
        FINISH
        DEF V_003b SKIPSYMBOL  type=0, routine, format=0, external-spec
        START
        FINISH
        DEF V_003c PRINTSTRING  type=0, routine, format=0, external-spec
        START
        DEF V_003d S  string, simple, format=255, 0
        FINISH
        DEF V_003d DEBUGSTRING  type=0, routine, format=0, external-spec
        START
        DEF V_003e S  string, simple, format=255, 0
        FINISH
        DEF V_003e DEBUGNEWLINE  type=0, routine, format=0, external-spec
        START
        FINISH
        DEF V_003f DEBUGSPACE  type=0, routine, format=0, external-spec
        START
        FINISH
        DEF V_0040 DEBUGSPACES  type=0, routine, format=0, external-spec
        START
        DEF V_0041 COUNT  integer, simple, format=1, 0
        FINISH
        DEF V_0041 WRITE  type=0, routine, format=0, external-spec
        START
        DEF V_0042 V  integer, simple, format=1, 0
        DEF V_0043 P  integer, simple, format=1, 0
        FINISH
        DEF V_0042 SPACE  type=0, routine, format=0, external-spec
        START
        FINISH
        DEF V_0043 SPACES  type=0, routine, format=0, external-spec
        START
        DEF V_0044 N  integer, simple, format=1, 0
        FINISH
        DEF V_0044 NEWLINE  type=0, routine, format=0, external-spec
        START
        FINISH
        DEF V_0045 NEWLINES  type=0, routine, format=0, external-spec
        START
        DEF V_0046 N  integer, simple, format=1, 0
        FINISH
        DEF V_0046 PRINTFL  type=0, routine, format=0, external-spec
        START
        DEF V_0047 F  long-real, simple, format=4, 0
        DEF V_0048 DP  integer, simple, format=1, 0
        FINISH
        DEF V_0047 PRINTREAL  type=0, routine, format=0, external-spec
        START
        DEF V_0048 F  long-real, simple, format=4, 0
        DEF V_0049 SF  integer, simple, format=1, 0
        DEF V_004a PLACES  integer, simple, format=1, 0
        FINISH
        DEF V_0048 PRINTFLOAT  type=0, routine, format=0, external-spec
        START
        DEF V_0049 F  long-real, simple, format=4, 0
        DEF V_004a SF  integer, simple, format=1, 0
        FINISH
        DEF V_0049 INTPT  integer, function, format=1, external-spec-indirect
        START
        DEF V_004a R  long-real, simple, format=4, 0
        FINISH
        DEF V_004a TOUPPER  type=0, routine, format=0, external-spec
        START
        DEF V_004b S  string, name, format=0, 0
        FINISH
        DEF V_004b TOLOWER  type=0, routine, format=0, external-spec
        START
        DEF V_004c S  string, name, format=0, 0
        FINISH
        DEF V_004c ITOS  string, function, format=255, external-spec-indirect
        START
        DEF V_004d N  integer, simple, format=1, 0
        DEF V_004e PLACES  integer, simple, format=1, 0
        FINISH
        DEF V_004d FTOS  string, function, format=255, external-spec-indirect
        START
        DEF V_004e F  long-real, simple, format=4, 0
        DEF V_004f SF  integer, simple, format=1, 0
        DEF V_0050 PLACES  integer, simple, format=1, 0
        FINISH
        DEF V_004e FTOSP  string, function, format=255, external-spec-indirect
        START
        DEF V_004f F  long-real, simple, format=4, 0
        DEF V_0050 PLACES  integer, simple, format=1, 0
        FINISH
        DEF V_004f READ  type=0, routine, format=0, external-spec
        START
        DEF V_0050 PTR  type=0, name, format=0, 0
        FINISH
        DEF V_0050 SUBSTRING  string, function, format=255, external-spec-indirect
        START
        DEF V_0051 S  string, simple, format=255, 0
        DEF V_0052 FROM  integer, simple, format=1, 0
        DEF V_0053 TO  integer, simple, format=1, 0
        FINISH
        DEF V_0051 TRIM  string, function, format=255, external-spec-indirect
        START
        DEF V_0052 S  string, simple, format=255, 0
        DEF V_0053 MAX  integer, simple, format=1, 0
        FINISH
        DEF V_0052 SETDEBUG  type=0, routine, format=0, external-spec
        START
        FINISH
        DEF V_0053 CLEARDEBUG  type=0, routine, format=0, external-spec
        START
        FINISH
        DEF V_0054 DEBUGMODE  integer, function, format=1, external-spec-indirect
        START
        FINISH
        DEF V_0055 SHOWDEBUG  type=0, predicate, format=0, external-spec
        START
        FINISH
        DEF V_0056 SETDEBUGLEVEL  type=0, routine, format=0, external-spec
        START
        DEF V_0057 LVL  integer, simple, format=1, 0
        FINISH
        DEF V_0057 INT2ASCII  string, function, format=255, external-spec-indirect
        START
        DEF V_0058 NN  integer, simple, format=1, 0
        DEF V_0059 BASE  integer, simple, format=1, 0
        DEF V_005a PLACES  integer, simple, format=1, 0
        FINISH
        DEF V_0058 FORMATNUMBER  string, function, format=255, external-spec-indirect
        START
        DEF V_0059 N  integer, simple, format=1, 0
        DEF V_005a BASE  integer, simple, format=1, 0
        DEF V_005b PLACES  integer, simple, format=1, 0
        FINISH
        DEF V_0059 INT2HEX  string, function, format=255, external-spec-indirect
        START
        DEF V_005a NN  integer, simple, format=1, 0
        DEF V_005b PLACES  integer, simple, format=1, 0
        FINISH
        DEF V_005a INT2BIN  string, function, format=32, external-spec-indirect
        START
        DEF V_005b NN  integer, simple, format=1, 0
        FINISH
        DEF V_005b SHORT2BIN  string, function, format=16, external-spec-indirect
        START
        DEF V_005c NN  short-integer, simple, format=3, 0
        FINISH
        DEF V_005c GETENVCOUNT  integer, function, format=1, external-spec-indirect
        START
        FINISH
        DEF V_005d GETENVNAME  string, function, format=255, external-spec-indirect
        START
        DEF V_005e INDEX  integer, simple, format=1, 0
        FINISH
        DEF V_005e GETENV  string, function, format=255, external-spec-indirect
        START
        DEF V_005f INDEX  integer, simple, format=1, 0
        FINISH
        DEF V_005f GETENVINDEX  integer, function, format=1, external-spec-indirect
        START
        DEF V_0060 VARNAME  string, simple, format=255, 0
        FINISH
        DEF V_0060 GETENVASSTRING  string, function, format=255, external-spec-indirect
        START
        DEF V_0061 ENVNAME  string, simple, format=255, 0
        FINISH
        DEF V_0061 GETENVASINTEGER  integer, function, format=1, external-spec-indirect
        START
        DEF V_0062 VARNAME  string, simple, format=255, 0
        FINISH
        DEF V_0062 GETARGCOUNT  integer, function, format=1, external-spec-indirect
        START
        FINISH
        DEF V_0063 GETARG  string, function, format=255, external-spec-indirect
        START
        DEF V_0064 INDEX  integer, simple, format=1, 0
        FINISH
        ALIAS "_imp_cliparam"
        DEF V_0064 CLIPARAM  string, function, format=255, external-spec-indirect
        START
        FINISH
        DEF V_0065 NEW  record, map, format=0, external-spec
        START
        DEF V_0066 TEMPLATE  type=0, name, format=0, 0
        FINISH
        DEF V_0066 DISPOSE  type=0, routine, format=0, external-spec
        START
        DEF V_0067 TEMPLATE  type=0, name, format=0, 0
        FINISH
        DEF V_0067 SQRT  long-real, function, format=4, external-spec-indirect
        START
        DEF V_0068 X  long-real, simple, format=4, 0
        FINISH
        DEF V_0068 PI  long-real, function, format=4, external-spec-indirect
        START
        FINISH
        DEF V_0069 SINE  long-real, function, format=4, external-spec-indirect
        START
        DEF V_006a X  long-real, simple, format=4, 0
        FINISH
        DEF V_006a COSINE  long-real, function, format=4, external-spec-indirect
        START
        DEF V_006b X  long-real, simple, format=4, 0
        FINISH
        DEF V_006b LOG2  long-real, function, format=4, external-spec-indirect
        START
        DEF V_006c X  long-real, simple, format=4, 0
        FINISH
        DEF V_006c LOG  long-real, function, format=4, external-spec-indirect
        START
        DEF V_006d X  long-real, simple, format=4, 0
        FINISH
        DEF V_006d LOG10  long-real, function, format=4, external-spec-indirect
        START
        DEF V_006e X  long-real, simple, format=4, 0
        FINISH
        DEF V_006e EXIT  type=0, routine, format=0, external-spec
        START
        DEF V_006f STATUS  integer, simple, format=1, 0
        FINISH
        LINE 1
     1  %begin
        BEGIN
        LINE 3
     2  %comment %begin
     3    %longreal lr1
        DEF V_006f LR1  long-real, simple, format=4, 0
        LINE 5
     4  %comment   %longreal lr1
     5    %integer i, i1 = 1, i2 = 2, i3 = 3, j
        DEF V_0070 I  integer, simple, format=1, 0
        DEF V_0071 I1  integer, simple, format=1, 0
        PUSH V_0071
        PUSHI #0x00000001
        ASSVAL
        DEF V_0072 I2  integer, simple, format=1, 0
        PUSH V_0072
        PUSHI #0x00000002
        ASSVAL
        DEF V_0073 I3  integer, simple, format=1, 0
        PUSH V_0073
        PUSHI #0x00000003
        ASSVAL
        DEF V_0074 J  integer, simple, format=1, 0
        LINE 8
     6  %comment   %integer i, i1 = 1, i2 = 2, i3 = 3, j
     7  
     8    test1:
        LABEL L_0075
        LINE 12
     9  %comment   test1:
    10    
    11  %comment   
    12    %unless i2 = i3 %then i = i1 %and j = i
        PUSH V_0072
        PUSH V_0073
        JUMPIF = L_0004
        PUSH V_0070
        PUSH V_0071
        ASSVAL
        PUSH V_0074
        PUSH V_0070
        ASSVAL
        LOCATE L_0004
        LINE 16
    13  %comment   %unless i2 = i3 %then i = i1 %and j = i
    14    
    15  %comment   
    16    %unless i2 = i3 %then %start
        PUSH V_0072
        PUSH V_0073
        JUMPIF = L_0004
        LINE 18
    17  %comment   %unless i2 = i3 %then %start
    18      i = i1
        PUSH V_0070
        PUSH V_0071
        ASSVAL
        LINE 20
    19  %comment     i = i1
    20    %finish
        LOCATE L_0004
        LINE 23
    21  %comment   %finish
    22  
    23    test2:
        LABEL L_0076
        LINE 27
    24  %comment   test2:
    25    
    26  %comment   
    27    %unless i2 = i3 %start
        PUSH V_0072
        PUSH V_0073
        JUMPIF = L_0004
        LINE 29
    28  %comment   %unless i2 = i3 %start
    29      i = i1
        PUSH V_0070
        PUSH V_0071
        ASSVAL
        LINE 31
    30  %comment     i = i1
    31    %finish
        LOCATE L_0004
        LINE 34
    32  %comment   %finish
    33  
    34    test3else:
        LABEL L_0077
        LINE 38
    35  %comment   test3else:
    36    
    37  %comment   
    38    %unless i2 = i3 %then i = i1 %and j = i %else i = i2 %and j = i
        PUSH V_0072
        PUSH V_0073
        JUMPIF = L_0004
        PUSH V_0070
        PUSH V_0071
        ASSVAL
        PUSH V_0074
        PUSH V_0070
        ASSVAL
        GOTO L_0003
        LOCATE L_0004
        PUSH V_0070
        PUSH V_0072
        ASSVAL
        PUSH V_0074
        PUSH V_0070
        ASSVAL
        LOCATE L_0003
        LINE 41
    39  %comment   %unless i2 = i3 %then i = i1 %and j = i %else i = i2 %and j = i
    40  
    41    test4else:
        LABEL L_0078
        LINE 45
    42  %comment   test4else:
    43    
    44  %comment   
    45    %unless i2 = i3 %then %start
        PUSH V_0072
        PUSH V_0073
        JUMPIF = L_0004
        LINE 47
    46  %comment   %unless i2 = i3 %then %start
    47      i = i1
        PUSH V_0070
        PUSH V_0071
        ASSVAL
        LINE 49
    48  %comment     i = i1
    49    %finish %else i = i2 %and j = i
        GOTO L_0003
        LOCATE L_0004
        PUSH V_0070
        PUSH V_0072
        ASSVAL
        PUSH V_0074
        PUSH V_0070
        ASSVAL
        LOCATE L_0003
        LINE 52
    50  %comment   %finish %else i = i2 %and j = i
    51  
    52    test5else:
        LABEL L_0079
        LINE 56
    53  %comment   test5else:
    54    
    55  %comment   
    56    %unless i2 = i3 %start
        PUSH V_0072
        PUSH V_0073
        JUMPIF = L_0004
        LINE 58
    57  %comment   %unless i2 = i3 %start
    58      i = i1
        PUSH V_0070
        PUSH V_0071
        ASSVAL
        LINE 60
    59  %comment     i = i1
    60    %finish %else i = i2 %and j = i
        GOTO L_0003
        LOCATE L_0004
        PUSH V_0070
        PUSH V_0072
        ASSVAL
        PUSH V_0074
        PUSH V_0070
        ASSVAL
        LOCATE L_0003
        LINE 63
    61  %comment   %finish %else i = i2 %and j = i
    62  
    63    test6else:
        LABEL L_007a
        LINE 66
    64  %comment   test6else:
    65  
    66    %unless i2 = i3 %then %start
        PUSH V_0072
        PUSH V_0073
        JUMPIF = L_0004
        LINE 68
    67  %comment   %unless i2 = i3 %then %start
    68      i = i1
        PUSH V_0070
        PUSH V_0071
        ASSVAL
        LINE 70
    69  %comment     i = i1
    70    %finish %else %start
        GOTO L_0003
        LOCATE L_0004
        LINE 72
    71  %comment   %finish %else %start
    72      i = i2
        PUSH V_0070
        PUSH V_0072
        ASSVAL
        LINE 74
    73  %comment     i = i2
    74      j = i
        PUSH V_0074
        PUSH V_0070
        ASSVAL
        LINE 76
    75  %comment     j = i
    76    %finish
        LOCATE L_0003
        LINE 79
    77  %comment   %finish
    78  
    79    test7else:
        LABEL L_007b
        LINE 83
    80  %comment   test7else:
    81    
    82  %comment   
    83    %unless i2 = i3 %start
        PUSH V_0072
        PUSH V_0073
        JUMPIF = L_0004
        LINE 85
    84  %comment   %unless i2 = i3 %start
    85      i = i1
        PUSH V_0070
        PUSH V_0071
        ASSVAL
        LINE 87
    86  %comment     i = i1
    87    %finish %else %start
        GOTO L_0003
        LOCATE L_0004
        LINE 89
    88  %comment   %finish %else %start
    89      i = i2
        PUSH V_0070
        PUSH V_0072
        ASSVAL
        LINE 91
    90  %comment     i = i2
    91      j = i
        PUSH V_0074
        PUSH V_0070
        ASSVAL
        LINE 93
    92  %comment     j = i
    93    %finish
        LOCATE L_0003
        LINE 96
    94  %comment   %finish
    95  
    96    test8else:
        LABEL L_007c
        LINE 99
    97  %comment   test8else:
    98  
    99    %unless i2 = i3 %then %start
        PUSH V_0072
        PUSH V_0073
        JUMPIF = L_0004
        LINE 101
   100  %comment   %unless i2 = i3 %then %start
   101      i = i1
        PUSH V_0070
        PUSH V_0071
        ASSVAL
        LINE 103
   102  %comment     i = i1
   103    %else
        GOTO L_0003
        LOCATE L_0004
        LINE 105
   104  %comment   %else
   105      i = i2
        PUSH V_0070
        PUSH V_0072
        ASSVAL
        LINE 107
   106  %comment     i = i2
   107      j = i
        PUSH V_0074
        PUSH V_0070
        ASSVAL
        LINE 109
   108  %comment     j = i
   109    %finish
        LOCATE L_0003
        LINE 112
   110  %comment   %finish
   111  
   112    test9else:
        LABEL L_007d
        LINE 116
   113  %comment   test9else:
   114    
   115  %comment   
   116    %unless i2 = i3 %start
        PUSH V_0072
        PUSH V_0073
        JUMPIF = L_0004
        LINE 118
   117  %comment   %unless i2 = i3 %start
   118      i = i1
        PUSH V_0070
        PUSH V_0071
        ASSVAL
        LINE 120
   119  %comment     i = i1
   120    %else
        GOTO L_0003
        LOCATE L_0004
        LINE 122
   121  %comment   %else
   122      i = i2 ; j = i
        PUSH V_0070
        PUSH V_0072
        ASSVAL
        LINE 122
        PUSH V_0074
        PUSH V_0070
        ASSVAL
        LINE 124
   123  %comment     i = i2 ; j = i
   124    %finish
        LOCATE L_0003
        LINE 127
   125  %comment   %finish
   126  
   127    test10else:
        LABEL L_007e
        LINE 131
   128  %comment   test10else:
   129    
   130  %comment   
   131    %unless i2 = i3 %then %start
        PUSH V_0072
        PUSH V_0073
        JUMPIF = L_0004
        LINE 133
   132  %comment   %unless i2 = i3 %then %start
   133      i = i1
        PUSH V_0070
        PUSH V_0071
        ASSVAL
        LINE 135
   134  %comment     i = i1
   135    %else %start
        LINE 137
   136  %comment   %else %start
   137      i = i2
        PUSH V_0070
        PUSH V_0072
        ASSVAL
        LINE 139
   138  %comment     i = i2
   139      j = i
        PUSH V_0074
        PUSH V_0070
        ASSVAL
        LINE 141
   140  %comment     j = i
   141    %finish
        LOCATE L_0004
        LINE 144
   142  %comment   %finish
   143  
   144    test11else:
        LABEL L_007f
        LINE 148
   145  %comment   test11else:
   146    
   147  %comment   
   148    %unless i2 = i3 %start
        PUSH V_0072
        PUSH V_0073
        JUMPIF = L_0004
        LINE 150
   149  %comment   %unless i2 = i3 %start
   150      i = i1 ; j = i
        PUSH V_0070
        PUSH V_0071
        ASSVAL
        LINE 150
        PUSH V_0074
        PUSH V_0070
        ASSVAL
        LINE 152
   151  %comment     i = i1 ; j = i
   152    %else %start
        LINE 154
   153  %comment   %else %start
   154      i = i2
        PUSH V_0070
        PUSH V_0072
        ASSVAL
        LINE 156
   155  %comment     i = i2
   156      j = i
        PUSH V_0074
        PUSH V_0070
        ASSVAL
        LINE 158
   157  %comment     j = i
   158    %finish
        LOCATE L_0004
        LINE 161
   159  %comment   %finish
   160  
   161    test12else:
        LABEL L_0080
        LINE 164
   162  %comment   test12else:
   163  
   164    %unless i2 = i3 %then i = i1 %and j = i %else %start
        PUSH V_0072
        PUSH V_0073
        JUMPIF = L_0004
        PUSH V_0070
        PUSH V_0071
        ASSVAL
        PUSH V_0074
        PUSH V_0070
        ASSVAL
        GOTO L_0003
        LOCATE L_0004
        LINE 166
   165  %comment   %unless i2 = i3 %then i = i1 %and j = i %else %start
   166      i = i2
        PUSH V_0070
        PUSH V_0072
        ASSVAL
        LINE 168
   167  %comment     i = i2
   168      j = i
        PUSH V_0074
        PUSH V_0070
        ASSVAL
        LINE 170
   169  %comment     j = i
   170    %finish
        LOCATE L_0003
        LINE 174
   171  %comment   %finish
   172    
   173  %comment   
   174  %endofprogram
        END
        END
