
             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 2
     2    %routine true
        GOTO L_0000
        DEF V_006f TRUE  type=0, routine, format=0, 0
        START
        FINISH
        LINE 3
     3    %end
        END
        LOCATE L_0000
        LINE 4
     4    %integer a,b,c,d,e,f,g,h
        DEF V_0070 A  integer, simple, format=1, 0
        DEF V_0071 B  integer, simple, format=1, 0
        DEF V_0072 C  integer, simple, format=1, 0
        DEF V_0073 D  integer, simple, format=1, 0
        DEF V_0074 E  integer, simple, format=1, 0
        DEF V_0075 F  integer, simple, format=1, 0
        DEF V_0076 G  integer, simple, format=1, 0
        DEF V_0077 H  integer, simple, format=1, 0
        LINE 7
     5  
     6    ! conditionals
     7    true %if a = b
        PUSH V_0070
        PUSH V_0071
        JUMPIF # L_0004
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 9
     8    %comment   true %if a = b
     9    true %if a < b %or b < c
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0005
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 11
    10    %comment   true %if a < b %or b < c
    11    true %if a < b %and b < c
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0004
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 13
    12    %comment   true %if a < b %and b < c
    13    true %if a < b < c
        PUSH V_0070
        PUSH V_0071
        JUMPIFD >= L_0004
        PUSH V_0072
        JUMPIF >= L_0004
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 15
    14    %comment   true %if a < b < c
    15    true %if a < b %and (a < b %or b < c)
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0004
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0005
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 17
    16    %comment   true %if a < b %and (a < b %or b < c)
    17    true %if a < b %and ((a < b %and b < c) %or b < c)
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0004
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0005
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 19
    18    %comment   true %if a < b %and ((a < b %and b < c) %or b < c)
    19    true %if a < b %or ((a < b %or b < c) %and b < c)
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0005
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 22
    20    %comment   true %if a < b %or ((a < b %or b < c) %and b < c)
    21  
    22    true %unless a = b
        PUSH V_0070
        PUSH V_0071
        JUMPIF = L_0004
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 24
    23    %comment   true %unless a = b
    24    true %unless a < b %or b < c
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0004
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 26
    25    %comment   true %unless a < b %or b < c
    26    true %unless a < b %and b < c
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0005
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 28
    27    %comment   true %unless a < b %and b < c
    28    true %unless a < b < c
        PUSH V_0070
        PUSH V_0071
        JUMPIFD >= L_0005
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 30
    29    %comment   true %unless a < b < c
    30    true %unless a < b %and (a < b %or b < c)
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0005
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0004
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 32
    31    %comment   true %unless a < b %and (a < b %or b < c)
    32    true %unless a < b %and ((a < b %and b < c) %or b < c)
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0005
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 34
    33    %comment   true %unless a < b %and ((a < b %and b < c) %or b < c)
    34    true %unless a < b %or ((a < b %or b < c) %and b < c)
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0004
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0005
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 37
    35    %comment   true %unless a < b %or ((a < b %or b < c) %and b < c)
    36  
    37    true %while a = b
        LOCATE L_0003
        PUSH V_0070
        PUSH V_0071
        JUMPIF # L_0004
        PUSH V_006f
        CALL
        REPEAT L_0003
        LOCATE L_0004
        LINE 39
    38    %comment   true %while a = b
    39    true %while a < b %or b < c
        LOCATE L_0003
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0005
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        REPEAT L_0003
        LOCATE L_0004
        LINE 41
    40    %comment   true %while a < b %or b < c
    41    true %while a < b %and b < c
        LOCATE L_0003
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0004
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        PUSH V_006f
        CALL
        REPEAT L_0003
        LOCATE L_0004
        LINE 43
    42    %comment   true %while a < b %and b < c
    43    true %while a < b < c
        LOCATE L_0003
        PUSH V_0070
        PUSH V_0071
        JUMPIFD >= L_0004
        PUSH V_0072
        JUMPIF >= L_0004
        PUSH V_006f
        CALL
        REPEAT L_0003
        LOCATE L_0004
        LINE 45
    44    %comment   true %while a < b < c
    45    true %while a < b %and (a < b %or b < c)
        LOCATE L_0003
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0004
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0005
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        REPEAT L_0003
        LOCATE L_0004
        LINE 47
    46    %comment   true %while a < b %and (a < b %or b < c)
    47    true %while a < b %and ((a < b %and b < c) %or b < c)
        LOCATE L_0003
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0004
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0005
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        REPEAT L_0003
        LOCATE L_0004
        LINE 49
    48    %comment   true %while a < b %and ((a < b %and b < c) %or b < c)
    49    true %while a < b %or ((a < b %or b < c) %and b < c)
        LOCATE L_0003
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0005
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        REPEAT L_0003
        LOCATE L_0004
        LINE 52
    50    %comment   true %while a < b %or ((a < b %or b < c) %and b < c)
    51  
    52    true %until a = b
        LOCATE L_0003
        PUSH V_006f
        CALL
        PUSH V_0070
        PUSH V_0071
        JUMPIF = L_0004
        REPEAT L_0003
        LOCATE L_0004
        LINE 54
    53    %comment   true %until a = b
    54    true %until a < b %or b < c
        LOCATE L_0003
        PUSH V_006f
        CALL
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0004
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        REPEAT L_0003
        LOCATE L_0004
        LINE 56
    55    %comment   true %until a < b %or b < c
    56    true %until a < b %and b < c
        LOCATE L_0003
        PUSH V_006f
        CALL
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0005
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        REPEAT L_0003
        LOCATE L_0004
        LINE 58
    57    %comment   true %until a < b %and b < c
    58    true %until a < b < c
        LOCATE L_0003
        PUSH V_006f
        CALL
        PUSH V_0070
        PUSH V_0071
        JUMPIFD >= L_0005
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        REPEAT L_0003
        LOCATE L_0004
        LINE 60
    59    %comment   true %until a < b < c
    60    true %until a < b %and (a < b %or b < c)
        LOCATE L_0003
        PUSH V_006f
        CALL
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0005
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0004
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        REPEAT L_0003
        LOCATE L_0004
        LINE 62
    61    %comment   true %until a < b %and (a < b %or b < c)
    62    true %until a < b %and ((a < b %and b < c) %or b < c)
        LOCATE L_0003
        PUSH V_006f
        CALL
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0005
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        REPEAT L_0003
        LOCATE L_0004
        LINE 64
    63    %comment   true %until a < b %and ((a < b %and b < c) %or b < c)
    64    true %until a < b %or ((a < b %or b < c) %and b < c)
        LOCATE L_0003
        PUSH V_006f
        CALL
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0004
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0005
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        REPEAT L_0003
        LOCATE L_0004
        LINE 68
    65    %comment   true %until a < b %or ((a < b %or b < c) %and b < c)
    66  
    67    ! conditionals
    68    true %if %not a = b
        PUSH V_0070
        PUSH V_0071
        JUMPIF = L_0004
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 70
    69    %comment   true %if %not a = b
    70    true %if %not ( a < b %or b < c)
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0004
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 72
    71    %comment   true %if %not ( a < b %or b < c)
    72    true %if %not ( a < b %and b < c)
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0005
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 74
    73    %comment   true %if %not ( a < b %and b < c)
    74    true %if %not ( a < b < c)
        PUSH V_0070
        PUSH V_0071
        JUMPIFD >= L_0005
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 76
    75    %comment   true %if %not ( a < b < c)
    76    true %if %not ( a < b %and (a < b %or b < c))
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0005
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0004
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 78
    77    %comment   true %if %not ( a < b %and (a < b %or b < c))
    78    true %if %not ( a < b %and ((a < b %and b < c) %or b < c))
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0005
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 80
    79    %comment   true %if %not ( a < b %and ((a < b %and b < c) %or b < c))
    80    true %if %not ( a < b %or ((a < b %or b < c) %and b < c))
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0004
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0005
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 83
    81    %comment   true %if %not ( a < b %or ((a < b %or b < c) %and b < c))
    82  
    83    true %unless %not a = b
        PUSH V_0070
        PUSH V_0071
        JUMPIF # L_0004
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 85
    84    %comment   true %unless %not a = b
    85    true %unless %not ( a < b %or b < c)
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0005
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 87
    86    %comment   true %unless %not ( a < b %or b < c)
    87    true %unless %not ( a < b %and b < c)
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0004
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 89
    88    %comment   true %unless %not ( a < b %and b < c)
    89    true %unless %not ( a < b < c)
        PUSH V_0070
        PUSH V_0071
        JUMPIFD >= L_0004
        PUSH V_0072
        JUMPIF >= L_0004
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 91
    90    %comment   true %unless %not ( a < b < c)
    91    true %unless %not ( a < b %and (a < b %or b < c))
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0004
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0005
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 93
    92    %comment   true %unless %not ( a < b %and (a < b %or b < c))
    93    true %unless %not ( a < b %and ((a < b %and b < c) %or b < c))
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0004
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0005
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 95
    94    %comment   true %unless %not ( a < b %and ((a < b %and b < c) %or b < c))
    95    true %unless %not ( a < b %or ((a < b %or b < c) %and b < c))
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0005
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        LOCATE L_0004
        LINE 98
    96    %comment   true %unless %not ( a < b %or ((a < b %or b < c) %and b < c))
    97  
    98    true %while %not a = b
        LOCATE L_0003
        PUSH V_0070
        PUSH V_0071
        JUMPIF = L_0004
        PUSH V_006f
        CALL
        REPEAT L_0003
        LOCATE L_0004
        LINE 100
    99    %comment   true %while %not a = b
   100    true %while %not ( a < b %or b < c)
        LOCATE L_0003
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0004
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        PUSH V_006f
        CALL
        REPEAT L_0003
        LOCATE L_0004
        LINE 102
   101    %comment   true %while %not ( a < b %or b < c)
   102    true %while %not ( a < b %and b < c)
        LOCATE L_0003
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0005
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        REPEAT L_0003
        LOCATE L_0004
        LINE 104
   103    %comment   true %while %not ( a < b %and b < c)
   104    true %while %not ( a < b < c)
        LOCATE L_0003
        PUSH V_0070
        PUSH V_0071
        JUMPIFD >= L_0005
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        REPEAT L_0003
        LOCATE L_0004
        LINE 106
   105    %comment   true %while %not ( a < b < c)
   106    true %while %not ( a < b %and (a < b %or b < c))
        LOCATE L_0003
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0005
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0004
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        REPEAT L_0003
        LOCATE L_0004
        LINE 108
   107    %comment   true %while %not ( a < b %and (a < b %or b < c))
   108    true %while %not ( a < b %and ((a < b %and b < c) %or b < c))
        LOCATE L_0003
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0005
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        REPEAT L_0003
        LOCATE L_0004
        LINE 110
   109    %comment   true %while %not ( a < b %and ((a < b %and b < c) %or b < c))
   110    true %while %not ( a < b %or ((a < b %or b < c) %and b < c))
        LOCATE L_0003
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0004
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0005
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0004
        LOCATE L_0005
        PUSH V_006f
        CALL
        REPEAT L_0003
        LOCATE L_0004
        LINE 113
   111    %comment   true %while %not ( a < b %or ((a < b %or b < c) %and b < c))
   112  
   113    true %until %not a = b
        LOCATE L_0003
        PUSH V_006f
        CALL
        PUSH V_0070
        PUSH V_0071
        JUMPIF # L_0004
        REPEAT L_0003
        LOCATE L_0004
        LINE 115
   114    %comment   true %until %not a = b
   115    true %until %not ( a < b %or b < c)
        LOCATE L_0003
        PUSH V_006f
        CALL
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0005
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        REPEAT L_0003
        LOCATE L_0004
        LINE 117
   116    %comment   true %until %not ( a < b %or b < c)
   117    true %until %not ( a < b %and b < c)
        LOCATE L_0003
        PUSH V_006f
        CALL
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0004
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        REPEAT L_0003
        LOCATE L_0004
        LINE 119
   118    %comment   true %until %not ( a < b %and b < c)
   119    true %until %not ( a < b < c)
        LOCATE L_0003
        PUSH V_006f
        CALL
        PUSH V_0070
        PUSH V_0071
        JUMPIFD >= L_0004
        PUSH V_0072
        JUMPIF >= L_0004
        REPEAT L_0003
        LOCATE L_0004
        LINE 121
   120    %comment   true %until %not ( a < b < c)
   121    true %until %not ( a < b %and (a < b %or b < c))
        LOCATE L_0003
        PUSH V_006f
        CALL
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0004
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0005
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        REPEAT L_0003
        LOCATE L_0004
        LINE 123
   122    %comment   true %until %not ( a < b %and (a < b %or b < c))
   123    true %until %not ( a < b %and ((a < b %and b < c) %or b < c))
        LOCATE L_0003
        PUSH V_006f
        CALL
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0004
        PUSH V_0070
        PUSH V_0071
        JUMPIF >= L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF < L_0005
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        REPEAT L_0003
        LOCATE L_0004
        LINE 125
   124    %comment   true %until %not ( a < b %and ((a < b %and b < c) %or b < c))
   125    true %until %not ( a < b %or ((a < b %or b < c) %and b < c))
        LOCATE L_0003
        PUSH V_006f
        CALL
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0005
        PUSH V_0070
        PUSH V_0071
        JUMPIF < L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0006
        PUSH V_0071
        PUSH V_0072
        JUMPIF >= L_0004
        LOCATE L_0005
        REPEAT L_0003
        LOCATE L_0004
        LINE 128
   126    %comment   true %until %not ( a < b %or ((a < b %or b < c) %and b < c))
   127  
   128  %endofprogram
        END
        END
