
     1  %const %string (1) SNL ="
     2  "
        LINE   1 "regression-compile-tmp/compare.imp"
        PUSHS  "\n"
        DEF    SNL p1=V_0082 a/tf=31 b/format=1 c/ostate=12  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=2 (constant) spec=0 indirect=1 unass=0
        INIT   1

     3  %begin
        LINE   3 "regression-compile-tmp/compare.imp"
        BEGIN  _lev0id0 {lev=0 --> 1}

     4     %const %integer TRUE = 1, FALSE = 0
           LINE   4 "regression-compile-tmp/compare.imp"

     5     %constant %integer  A stream = 1, B stream = 2
           LINE   5 "regression-compile-tmp/compare.imp"

     6     %ownstring (255) A file, B file, pr, left, right
           LINE   6 "regression-compile-tmp/compare.imp"
           DEF    AFILE p1=V_0083 a/tf=31 b/format=ff c/ostate=21  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=1 (own) spec=0 indirect=0 unass=1
           INIT   1
           DEF    BFILE p1=V_0084 a/tf=31 b/format=ff c/ostate=21  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=1 (own) spec=0 indirect=0 unass=1
           INIT   1
           DEF    PR p1=V_0085 a/tf=31 b/format=ff c/ostate=21  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=1 (own) spec=0 indirect=0 unass=1
           INIT   1
           DEF    LEFT p1=V_0086 a/tf=31 b/format=ff c/ostate=21  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=1 (own) spec=0 indirect=0 unass=1
           INIT   1
           DEF    RIGHT p1=V_0087 a/tf=31 b/format=ff c/ostate=21  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=1 (own) spec=0 indirect=0 unass=1
           INIT   1

     7     %ownstring (255) %array File('A':'B')
           LINE   7 "regression-compile-tmp/compare.imp"
           PUSHI  #0x00000041
           PUSHI  #0x00000042
           BOUNDS
           DEF    FILE p1=V_0088 a/tf=3b b/format=ff c/ostate=121  type=3 (string) form=11 (array) special=0 (<special:0>) linkage=1 (own) spec=0 indirect=0 unass=1
           INIT   2

     8     %owninteger %array Base('A':'B')
           LINE   8 "regression-compile-tmp/compare.imp"
           PUSHI  #0x00000041
           PUSHI  #0x00000042
           BOUNDS
           DEF    BASE p1=V_0089 a/tf=1b b/format=1 c/ostate=121  type=1 (integer) form=11 (array) special=0 (<special:0>) linkage=1 (own) spec=0 indirect=0 unass=1
           INIT   2

     9     %owninteger A count, B count
           LINE   9 "regression-compile-tmp/compare.imp"
           DEF    ACOUNT p1=V_008a a/tf=11 b/format=1 c/ostate=21  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=1 (own) spec=0 indirect=0 unass=1
           INIT   1
           DEF    BCOUNT p1=V_008b a/tf=11 b/format=1 c/ostate=21  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=1 (own) spec=0 indirect=0 unass=1
           INIT   1

    10     %owninteger A num, B num
    11  
           LINE   10 "regression-compile-tmp/compare.imp"
           DEF    ANUM p1=V_008c a/tf=11 b/format=1 c/ostate=21  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=1 (own) spec=0 indirect=0 unass=1
           INIT   1
           DEF    BNUM p1=V_008d a/tf=11 b/format=1 c/ostate=21  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=1 (own) spec=0 indirect=0 unass=1
           INIT   1

    12     %const %integer Max Lines = 512, Max Line Width = 128
           LINE   12 "regression-compile-tmp/compare.imp"

    13     %byte %integer %array AA, BB (1:Max Lines*Max Line Width)
    14  
           LINE   13 "regression-compile-tmp/compare.imp"
           DEF    AA p1=V_008e a/tf=1b b/format=2 c/ostate=100  type=1 (integer) form=11 (array) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=0 unass=0
           DEF    BB p1=V_008f a/tf=1b b/format=2 c/ostate=100  type=1 (integer) form=11 (array) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=0 unass=0
           PUSHI  #0x00000001
           PUSHI  #0x00000200
           PUSHI  #0x00000080
           MUL   
           DIM    0001 0002

    15     %integer%fn  input ended
           LINE   15 "regression-compile-tmp/compare.imp"
           DEF    INPUTENDED (_lev0id0_INPUTENDED) p1=V_0090 a/tf=18 b/format=1 c/ostate=10  type=1 (integer) form=8 (function) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=1 unass=0
              START  ( FORMAL PARAMETERS  {lev=2 --> 3, nested=0 --> 1}
              FINISH ) {lev=2}

    16        %integer ch
              LINE   16 "regression-compile-tmp/compare.imp"
              DEF    CH p1=V_0091 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

    17        %on %event 9 %start
              LINE   17 "regression-compile-tmp/compare.imp"
              ON     MASK=0200 L_0004

    18           %result = TRUE
              LINE   18 "regression-compile-tmp/compare.imp"
              PUSHI  #0x00000001
              RESULT

    19        %finish
              LINE   19 "regression-compile-tmp/compare.imp"
              LOCATE L_0004

    20        ch = next symbol
              LINE   20 "regression-compile-tmp/compare.imp"
              PUSH   CH
              PUSH   NEXTSYMBOL
              CALL  
              ASSVAL

    21        %result = FALSE
              LINE   21 "regression-compile-tmp/compare.imp"
              PUSHI  #0x00000000
              RESULT

    22     %end
    23  
              LINE   22 "regression-compile-tmp/compare.imp"
           END    _lev0id0_INPUTENDED {lev=2 --> 1}

    24     %routine  Rd line (%string (*) %name s)
           LINE   24 "regression-compile-tmp/compare.imp"
           DEF    RDLINE (_lev0id0_RDLINE) p1=V_0091 a/tf=7 b/format=0 c/ostate=0  type=0 (<type:0>) form=7 (routine) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              START  ( FORMAL PARAMETERS  {lev=2 --> 3, nested=0 --> 1}
                 DEF    S p1=V_0092 a/tf=32 b/format=0 c/ostate=0  type=3 (string) form=2 (name) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              FINISH ) {lev=2}

    25        %integer ch
              LINE   25 "regression-compile-tmp/compare.imp"
              DEF    CH p1=V_0093 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

    26        s = ""
              LINE   26 "regression-compile-tmp/compare.imp"
              PUSH   S
              PUSHS  ""
              ASSVAL

    27        %cycle
              LINE   27 "regression-compile-tmp/compare.imp"
              LOCATE L_0003

    28           read symbol (ch)
              LINE   28 "regression-compile-tmp/compare.imp"
              PUSH   READSYMBOL
              PUSH   CH
              ASSPAR
              CALL  

    29           %exit %if ch = nl %or LENGTH(s) = Max Line Width
              LINE   29 "regression-compile-tmp/compare.imp"
              PUSH   CH
              PUSHI  #0x0000000a
              JUMPIF = L_0008
              PUSH   LENGTH
              PUSH   S
              ASSPAR
              CALL  
              PUSHI  #0x00000080
              JUMPIF # L_0007
              LOCATE L_0008
              GOTO   L_0004
              LOCATE L_0007

    30           s = s.tostring(ch)
              LINE   30 "regression-compile-tmp/compare.imp"
              PUSH   S
              PUSH   S
              PUSH   TOSTRING
              PUSH   CH
              ASSPAR
              CALL  
              CONCAT
              ASSVAL

    31        %repeat
              LINE   31 "regression-compile-tmp/compare.imp"
              REPEAT L_0003
              LOCATE L_0004

    32     %end
    33  
              LINE   32 "regression-compile-tmp/compare.imp"
           END    _lev0id0_RDLINE {lev=2 --> 1}

    34     %byte %integer %map  A (%integer i, j)
           LINE   34 "regression-compile-tmp/compare.imp"
           DEF    A (_lev0id0_A) p1=V_0092 a/tf=19 b/format=2 c/ostate=0  type=1 (integer) form=9 (map) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=0 unass=0
              START  ( FORMAL PARAMETERS  {lev=2 --> 3, nested=0 --> 1}
                 DEF    I p1=V_0093 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
                 DEF    J p1=V_0094 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              FINISH ) {lev=2}

    35        %result == AA (((Base('A') + i)&(Max Lines-1))*Max Line Width + j)
              LINE   35 "regression-compile-tmp/compare.imp"
              PUSH   AA
              PUSH   BASE
              PUSHI  #0x00000041
              ACCESS
              PUSH   I
              ADD   
              PUSHI  #0x00000200
              PUSHI  #0x00000001
              SUB   
              AND   
              PUSHI  #0x00000080
              MUL   
              PUSH   J
              ADD   
              ACCESS
              MAP   

    36     %end
    37  
              LINE   36 "regression-compile-tmp/compare.imp"
           END    _lev0id0_A {lev=2 --> 1}

    38     %byte %integer %map  B (%integer i, j)
           LINE   38 "regression-compile-tmp/compare.imp"
           DEF    B (_lev0id0_B) p1=V_0093 a/tf=19 b/format=2 c/ostate=0  type=1 (integer) form=9 (map) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=0 unass=0
              START  ( FORMAL PARAMETERS  {lev=2 --> 3, nested=0 --> 1}
                 DEF    I p1=V_0094 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
                 DEF    J p1=V_0095 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              FINISH ) {lev=2}

    39        %result == BB (((Base('B') + i)&(Max Lines-1))*Max Line Width + j)
              LINE   39 "regression-compile-tmp/compare.imp"
              PUSH   BB
              PUSH   BASE
              PUSHI  #0x00000042
              ACCESS
              PUSH   I
              ADD   
              PUSHI  #0x00000200
              PUSHI  #0x00000001
              SUB   
              AND   
              PUSHI  #0x00000080
              MUL   
              PUSH   J
              ADD   
              ACCESS
              MAP   

    40     %end
    41  
              LINE   40 "regression-compile-tmp/compare.imp"
           END    _lev0id0_B {lev=2 --> 1}

    42     %routine  refill (%byte %integer %map x (%integer i, j),
    43                       %integer n,
    44                       %integer %name count)
    45  
           LINE   42 "regression-compile-tmp/compare.imp"
           DEF    REFILL (_lev0id0_REFILL) p1=V_0094 a/tf=7 b/format=0 c/ostate=0  type=0 (<type:0>) form=7 (routine) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              START  ( FORMAL PARAMETERS  {lev=2 --> 3, nested=0 --> 1}
                 DEF    X (PROCEDURE PARAMETER _lev0id0_REFILL_X) p1=V_0095 a/tf=19 b/format=2 c/ostate=0  type=1 (integer) form=9 (map) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=0 unass=0
                 DEF    N p1=V_0096 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
                 DEF    COUNT p1=V_0097 a/tf=12 b/format=1 c/ostate=0  type=1 (integer) form=2 (name) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              FINISH ) {lev=2}
              DEF    X (_lev0id0_REFILL_X) p1=V_0095 a/tf=19 b/format=2 c/ostate=8  type=1 (integer) form=9 (map) special=1 (byte-integer) linkage=0 (auto) spec=1 indirect=0 unass=0
              START  ( FORMAL PARAMETERS  {lev=2 --> 3, nested=0 --> 1}
                 DEF    I p1=V_0098 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
                 DEF    J p1=V_0099 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              FINISH ) {lev=2}

    46        %integer i, j, ch
              LINE   46 "regression-compile-tmp/compare.imp"
              DEF    I p1=V_0098 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              DEF    J p1=V_0099 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              DEF    CH p1=V_009a a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

    47        %for i = Max Lines+1-n, 1, Max Lines %cycle
              LINE   47 "regression-compile-tmp/compare.imp"
              PUSH   I
              PUSHI  #0x00000001
              PUSHI  #0x00000200
              PUSHI  #0x00000200
              PUSHI  #0x00000001
              ADD   
              PUSH   N
              SUB   
              FOR    L_0003

    48           %cycle
              LINE   48 "regression-compile-tmp/compare.imp"
              LOCATE L_0006

    49              %return %if input ended=TRUE
              LINE   49 "regression-compile-tmp/compare.imp"
              PUSH   INPUTENDED
              CALL  
              PUSHI  #0x00000001
              JUMPIF # L_000a
              RETURN
              LOCATE L_000a

    50              Read symbol (ch)
              LINE   50 "regression-compile-tmp/compare.imp"
              PUSH   READSYMBOL
              PUSH   CH
              ASSPAR
              CALL  

    51           %repeat %until ch # nl
              LINE   51 "regression-compile-tmp/compare.imp"
              PUSH   CH
              PUSHI  #0x0000000a
              JUMPIF # L_0007
              REPEAT L_0006
              LOCATE L_0007

    52           %for j = 1, 1, Max Line Width-1 %cycle
              LINE   52 "regression-compile-tmp/compare.imp"
              PUSH   J
              PUSHI  #0x00000001
              PUSHI  #0x00000080
              PUSHI  #0x00000001
              SUB   
              PUSHI  #0x00000001
              FOR    L_0006

    53              %exit %if ch = nl %OR CH<32
              LINE   53 "regression-compile-tmp/compare.imp"
              PUSH   CH
              PUSHI  #0x0000000a
              JUMPIF = L_000b
              PUSH   CH
              PUSHI  #0x00000020
              JUMPIF >= L_000a
              LOCATE L_000b
              GOTO   L_0007
              LOCATE L_000a

    54              x (i, j) = ch
              LINE   54 "regression-compile-tmp/compare.imp"
              PUSH   X
              PUSH   I
              ASSPAR
              PUSH   J
              ASSPAR
              CALL  
              PUSH   CH
              ASSVAL

    55              %return %if input ended=TRUE
              LINE   55 "regression-compile-tmp/compare.imp"
              PUSH   INPUTENDED
              CALL  
              PUSHI  #0x00000001
              JUMPIF # L_000a
              RETURN
              LOCATE L_000a

    56              Read symbol (ch)
              LINE   56 "regression-compile-tmp/compare.imp"
              PUSH   READSYMBOL
              PUSH   CH
              ASSPAR
              CALL  

    57           %repeat
              LINE   57 "regression-compile-tmp/compare.imp"
              REPEAT L_0006
              LOCATE L_0007

    58           x (i, j) = nl
              LINE   58 "regression-compile-tmp/compare.imp"
              PUSH   X
              PUSH   I
              ASSPAR
              PUSH   J
              ASSPAR
              CALL  
              PUSHI  #0x0000000a
              ASSVAL

    59           count = count + 1
              LINE   59 "regression-compile-tmp/compare.imp"
              PUSH   COUNT
              PUSH   COUNT
              PUSHI  #0x00000001
              ADD   
              ASSVAL

    60        %repeat
              LINE   60 "regression-compile-tmp/compare.imp"
              REPEAT L_0003
              LOCATE L_0004

    61     %end
    62  
              LINE   61 "regression-compile-tmp/compare.imp"
           END    _lev0id0_REFILL {lev=2 --> 1}

    63     %routine  print (%byte %integer %map x (%integer i, j),
    64                      %integer n,
    65                               flag)
    66  
           LINE   63 "regression-compile-tmp/compare.imp"
           DEF    PRINT (_lev0id0_PRINT) p1=V_0095 a/tf=7 b/format=0 c/ostate=0  type=0 (<type:0>) form=7 (routine) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              START  ( FORMAL PARAMETERS  {lev=2 --> 3, nested=0 --> 1}
                 DEF    X (PROCEDURE PARAMETER _lev0id0_PRINT_X) p1=V_0096 a/tf=19 b/format=2 c/ostate=0  type=1 (integer) form=9 (map) special=1 (byte-integer) linkage=0 (auto) spec=0 indirect=0 unass=0
                 DEF    N p1=V_0097 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
                 DEF    FLAG p1=V_0098 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              FINISH ) {lev=2}
              DEF    X (_lev0id0_PRINT_X) p1=V_0096 a/tf=19 b/format=2 c/ostate=8  type=1 (integer) form=9 (map) special=1 (byte-integer) linkage=0 (auto) spec=1 indirect=0 unass=0
              START  ( FORMAL PARAMETERS  {lev=2 --> 3, nested=0 --> 1}
                 DEF    I p1=V_0099 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
                 DEF    J p1=V_009a a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              FINISH ) {lev=2}

    67        %integer i, j
              LINE   67 "regression-compile-tmp/compare.imp"
              DEF    I p1=V_0099 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              DEF    J p1=V_009a a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

    68        %for i = 1, 1, n %cycle
              LINE   68 "regression-compile-tmp/compare.imp"
              PUSH   I
              PUSHI  #0x00000001
              PUSH   N
              PUSHI  #0x00000001
              FOR    L_0003

    69           Print string ("""".File(flag).""",")
              LINE   69 "regression-compile-tmp/compare.imp"
              PUSH   PRINTSTRING
              PUSHS  "\""
              PUSH   FILE
              PUSH   FLAG
              ACCESS
              CONCAT
              PUSHS  "\","
              CONCAT
              ASSPAR
              CALL  

    70           Write (Base(flag)+i+1, 5)
              LINE   70 "regression-compile-tmp/compare.imp"
              PUSH   WRITE
              PUSH   BASE
              PUSH   FLAG
              ACCESS
              PUSH   I
              ADD   
              PUSHI  #0x00000001
              ADD   
              ASSPAR
              PUSHI  #0x00000005
              ASSPAR
              CALL  

    71           Print string (": ")
              LINE   71 "regression-compile-tmp/compare.imp"
              PUSH   PRINTSTRING
              PUSHS  ": "
              ASSPAR
              CALL  

    72           j = 0
              LINE   72 "regression-compile-tmp/compare.imp"
              PUSH   J
              PUSHI  #0x00000000
              ASSVAL

    73           %cycle
              LINE   73 "regression-compile-tmp/compare.imp"
              LOCATE L_0006

    74             j = j + 1
              LINE   74 "regression-compile-tmp/compare.imp"
              PUSH   J
              PUSH   J
              PUSHI  #0x00000001
              ADD   
              ASSVAL

    75             %exit %if x (i, j) = nl
              LINE   75 "regression-compile-tmp/compare.imp"
              PUSH   X
              PUSH   I
              ASSPAR
              PUSH   J
              ASSPAR
              CALL  
              PUSHI  #0x0000000a
              JUMPIF # L_000a
              GOTO   L_0007
              LOCATE L_000a

    76             Print symbol (x (i, j))
              LINE   76 "regression-compile-tmp/compare.imp"
              PUSH   PRINTSYMBOL
              PUSH   X
              PUSH   I
              ASSPAR
              PUSH   J
              ASSPAR
              CALL  
              ASSPAR
              CALL  

    77             %if j=57 %then newline %and spaces(20) %and printsymbol(':')
              LINE   77 "regression-compile-tmp/compare.imp"
              PUSH   J
              PUSHI  #0x00000039
              JUMPIF # L_000a
              PUSH   NEWLINE
              CALL  
              PUSH   SPACES
              PUSHI  #0x00000014
              ASSPAR
              CALL  
              PUSH   PRINTSYMBOL
              PUSHI  #0x0000003a
              ASSPAR
              CALL  
              LOCATE L_000a

    78           %repeat
              LINE   78 "regression-compile-tmp/compare.imp"
              REPEAT L_0006
              LOCATE L_0007

    79           newline
              LINE   79 "regression-compile-tmp/compare.imp"
              PUSH   NEWLINE
              CALL  

    80        %repeat
              LINE   80 "regression-compile-tmp/compare.imp"
              REPEAT L_0003
              LOCATE L_0004

    81     %end
    82  
              LINE   81 "regression-compile-tmp/compare.imp"
           END    _lev0id0_PRINT {lev=2 --> 1}

    83     %integer%fn  lines match (%integer A line, B line)
    84  
           LINE   83 "regression-compile-tmp/compare.imp"
           DEF    LINESMATCH (_lev0id0_LINESMATCH) p1=V_0096 a/tf=18 b/format=1 c/ostate=10  type=1 (integer) form=8 (function) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=1 unass=0
              START  ( FORMAL PARAMETERS  {lev=2 --> 3, nested=0 --> 1}
                 DEF    ALINE p1=V_0097 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
                 DEF    BLINE p1=V_0098 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              FINISH ) {lev=2}

    85        %integer j
              LINE   85 "regression-compile-tmp/compare.imp"
              DEF    J p1=V_0099 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

    86        %if A line > A count %or B line > B count %start
              LINE   86 "regression-compile-tmp/compare.imp"
              PUSH   ALINE
              PUSH   ACOUNT
              JUMPIF > L_0005
              PUSH   BLINE
              PUSH   BCOUNT
              JUMPIF <= L_0004
              LOCATE L_0005

    87           %result = TRUE %if A line > A count %and B line > B count
              LINE   87 "regression-compile-tmp/compare.imp"
              PUSH   ALINE
              PUSH   ACOUNT
              JUMPIF <= L_0007
              PUSH   BLINE
              PUSH   BCOUNT
              JUMPIF <= L_0007
              PUSHI  #0x00000001
              RESULT
              LOCATE L_0007

    88           %result = FALSE
              LINE   88 "regression-compile-tmp/compare.imp"
              PUSHI  #0x00000000
              RESULT

    89        %finish
              LINE   89 "regression-compile-tmp/compare.imp"
              LOCATE L_0004

    90        %for j = 1, 1, Max Line Width %cycle
              LINE   90 "regression-compile-tmp/compare.imp"
              PUSH   J
              PUSHI  #0x00000001
              PUSHI  #0x00000080
              PUSHI  #0x00000001
              FOR    L_0003

    91           %result = FALSE %if A (A line, j) # B (B line, j)
              LINE   91 "regression-compile-tmp/compare.imp"
              PUSH   A
              PUSH   ALINE
              ASSPAR
              PUSH   J
              ASSPAR
              CALL  
              PUSH   B
              PUSH   BLINE
              ASSPAR
              PUSH   J
              ASSPAR
              CALL  
              JUMPIF = L_0007
              PUSHI  #0x00000000
              RESULT
              LOCATE L_0007

    92           %result = TRUE %if A (A line, j) = nl
              LINE   92 "regression-compile-tmp/compare.imp"
              PUSH   A
              PUSH   ALINE
              ASSPAR
              PUSH   J
              ASSPAR
              CALL  
              PUSHI  #0x0000000a
              JUMPIF # L_0007
              PUSHI  #0x00000001
              RESULT
              LOCATE L_0007

    93        %repeat
              LINE   93 "regression-compile-tmp/compare.imp"
              REPEAT L_0003
              LOCATE L_0004

    94        %result = TRUE
              LINE   94 "regression-compile-tmp/compare.imp"
              PUSHI  #0x00000001
              RESULT

    95     %end
    96  
              LINE   95 "regression-compile-tmp/compare.imp"
           END    _lev0id0_LINESMATCH {lev=2 --> 1}

    97     %routine  find match (%integer %name AL, BL)
    98  
           LINE   97 "regression-compile-tmp/compare.imp"
           DEF    FINDMATCH (_lev0id0_FINDMATCH) p1=V_0097 a/tf=7 b/format=0 c/ostate=0  type=0 (<type:0>) form=7 (routine) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              START  ( FORMAL PARAMETERS  {lev=2 --> 3, nested=0 --> 1}
                 DEF    AL p1=V_0098 a/tf=12 b/format=1 c/ostate=0  type=1 (integer) form=2 (name) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
                 DEF    BL p1=V_0099 a/tf=12 b/format=1 c/ostate=0  type=1 (integer) form=2 (name) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              FINISH ) {lev=2}

    99        %integer i, j
              LINE   99 "regression-compile-tmp/compare.imp"
              DEF    I p1=V_009a a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              DEF    J p1=V_009b a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

   100        %for i = 1, 1, Max Lines %cycle
              LINE   100 "regression-compile-tmp/compare.imp"
              PUSH   I
              PUSHI  #0x00000001
              PUSHI  #0x00000200
              PUSHI  #0x00000001
              FOR    L_0003

   101           AL = i %and BL = i %and %return %if lines match (i, i)=TRUE
              LINE   101 "regression-compile-tmp/compare.imp"
              PUSH   LINESMATCH
              PUSH   I
              ASSPAR
              PUSH   I
              ASSPAR
              CALL  
              PUSHI  #0x00000001
              JUMPIF # L_0007
              PUSH   AL
              PUSH   I
              ASSVAL
              PUSH   BL
              PUSH   I
              ASSVAL
              RETURN
              LOCATE L_0007

   102           %if i > 1 %start
              LINE   102 "regression-compile-tmp/compare.imp"
              PUSH   I
              PUSHI  #0x00000001
              JUMPIF <= L_0007

   103              %for j = 1, 1, I - 1 %cycle
              LINE   103 "regression-compile-tmp/compare.imp"
              PUSH   J
              PUSHI  #0x00000001
              PUSH   I
              PUSHI  #0x00000001
              SUB   
              PUSHI  #0x00000001
              FOR    L_0009

   104                 AL = i %and BL = j %and %return %if lines match (i, j)=TRUE
              LINE   104 "regression-compile-tmp/compare.imp"
              PUSH   LINESMATCH
              PUSH   I
              ASSPAR
              PUSH   J
              ASSPAR
              CALL  
              PUSHI  #0x00000001
              JUMPIF # L_000d
              PUSH   AL
              PUSH   I
              ASSVAL
              PUSH   BL
              PUSH   J
              ASSVAL
              RETURN
              LOCATE L_000d

   105                 AL = j %and BL = i %and %return %if lines match (j, i)=TRUE
              LINE   105 "regression-compile-tmp/compare.imp"
              PUSH   LINESMATCH
              PUSH   J
              ASSPAR
              PUSH   I
              ASSPAR
              CALL  
              PUSHI  #0x00000001
              JUMPIF # L_000d
              PUSH   AL
              PUSH   J
              ASSVAL
              PUSH   BL
              PUSH   I
              ASSVAL
              RETURN
              LOCATE L_000d

   106              %repeat
              LINE   106 "regression-compile-tmp/compare.imp"
              REPEAT L_0009
              LOCATE L_000a

   107           %finish
              LINE   107 "regression-compile-tmp/compare.imp"
              LOCATE L_0007

   108        %repeat
              LINE   108 "regression-compile-tmp/compare.imp"
              REPEAT L_0003
              LOCATE L_0004

   109        AL = Max Lines+1; BL = Max Lines+1
              LINE   109 "regression-compile-tmp/compare.imp"
              PUSH   AL
              PUSHI  #0x00000200
              PUSHI  #0x00000001
              ADD   
              ASSVAL
              LINE   109 "regression-compile-tmp/compare.imp"
              PUSH   BL
              PUSHI  #0x00000200
              PUSHI  #0x00000001
              ADD   
              ASSVAL

   110     %end
   111  
   112  
              LINE   110 "regression-compile-tmp/compare.imp"
           END    _lev0id0_FINDMATCH {lev=2 --> 1}

   113  %integer fname len; 
   114  
           LINE   113 "regression-compile-tmp/compare.imp"
           DEF    FNAMELEN p1=V_0098 a/tf=11 b/format=1 c/ostate=0  type=1 (integer) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

   115  A num = Max Lines; B num = Max Lines
           LINE   115 "regression-compile-tmp/compare.imp"
           PUSH   ANUM
           PUSHI  #0x00000200
           ASSVAL
           LINE   115 "regression-compile-tmp/compare.imp"
           PUSH   BNUM
           PUSHI  #0x00000200
           ASSVAL

   116  Base('A') = 0; Base('B') = 0
           LINE   116 "regression-compile-tmp/compare.imp"
           PUSH   BASE
           PUSHI  #0x00000041
           ACCESS
           PUSHI  #0x00000000
           ASSVAL
           LINE   116 "regression-compile-tmp/compare.imp"
           PUSH   BASE
           PUSHI  #0x00000042
           ACCESS
           PUSHI  #0x00000000
           ASSVAL

   117  A count = 0; B count = 0
   118  
           LINE   117 "regression-compile-tmp/compare.imp"
           PUSH   ACOUNT
           PUSHI  #0x00000000
           ASSVAL
           LINE   117 "regression-compile-tmp/compare.imp"
           PUSH   BCOUNT
           PUSHI  #0x00000000
           ASSVAL

   119  %if cli param -> ("-h") %start
           LINE   119 "regression-compile-tmp/compare.imp"
           PUSH   CLIPARAM
           CALL  
           PUSHS  "-h"
           RESOLVE flags=0004
           bf     L_0004

   120    print string("Syntax: compare oldfile newfile".snl)
           LINE   120 "regression-compile-tmp/compare.imp"
           PUSH   PRINTSTRING
           PUSHS  "Syntax: compare oldfile newfile"
           PUSH   SNL
           CONCAT
           ASSPAR
           CALL  

   121    %stop
           LINE   121 "regression-compile-tmp/compare.imp"
           STOP  

   122  %finish
   123  
           LINE   122 "regression-compile-tmp/compare.imp"
           LOCATE L_0004

   124  pr = "New file: "
   125  
           LINE   124 "regression-compile-tmp/compare.imp"
           PUSH   PR
           PUSHS  "New file: "
           ASSVAL

   126  %unless cli param -> A file.(" ").B file %start
           LINE   126 "regression-compile-tmp/compare.imp"
           PUSH   CLIPARAM
           CALL  
           PUSH   AFILE
           PUSHS  " "
           PUSH   BFILE
           RESOLVE flags=0007
           bt     L_0004

   127    A file = cli param
           LINE   127 "regression-compile-tmp/compare.imp"
           PUSH   AFILE
           PUSH   CLIPARAM
           CALL  
           ASSVAL

   128    %if A file # "" %start
           LINE   128 "regression-compile-tmp/compare.imp"
           PUSH   AFILE
           PUSHS  ""
           JUMPIF = L_0007

   129     B file = ""; pr = "Against:  "
           LINE   129 "regression-compile-tmp/compare.imp"
           PUSH   BFILE
           PUSHS  ""
           ASSVAL
           LINE   129 "regression-compile-tmp/compare.imp"
           PUSH   PR
           PUSHS  "Against:  "
           ASSVAL

   130    %else
           LINE   130 "regression-compile-tmp/compare.imp"
           GOTO   L_0006
           LOCATE L_0007

   131     A file = ""
           LINE   131 "regression-compile-tmp/compare.imp"
           PUSH   AFILE
           PUSHS  ""
           ASSVAL

   132     B file = ""
           LINE   132 "regression-compile-tmp/compare.imp"
           PUSH   BFILE
           PUSHS  ""
           ASSVAL

   133    %finish
           LINE   133 "regression-compile-tmp/compare.imp"
           LOCATE L_0006

   134  %finish
   135  
           LINE   134 "regression-compile-tmp/compare.imp"
           LOCATE L_0004

   136  A file <- left.right %while A file -> left.(" ").right
           LINE   136 "regression-compile-tmp/compare.imp"
           LOCATE L_0003
           PUSH   AFILE
           PUSH   LEFT
           PUSHS  " "
           PUSH   RIGHT
           RESOLVE flags=0007
           bf     L_0004
           PUSH   AFILE
           PUSH   LEFT
           PUSH   RIGHT
           CONCAT
           JAM   
           REPEAT L_0003
           LOCATE L_0004

   137  B file <- left.right %while B file -> left.(" ").right
   138  
           LINE   137 "regression-compile-tmp/compare.imp"
           LOCATE L_0003
           PUSH   BFILE
           PUSH   LEFT
           PUSHS  " "
           PUSH   RIGHT
           RESOLVE flags=0007
           bf     L_0004
           PUSH   BFILE
           PUSH   LEFT
           PUSH   RIGHT
           CONCAT
           JAM   
           REPEAT L_0003
           LOCATE L_0004

   139  File('A') = A file; File('B') = B file
   140  
           LINE   139 "regression-compile-tmp/compare.imp"
           PUSH   FILE
           PUSHI  #0x00000041
           ACCESS
           PUSH   AFILE
           ASSVAL
           LINE   139 "regression-compile-tmp/compare.imp"
           PUSH   FILE
           PUSHI  #0x00000042
           ACCESS
           PUSH   BFILE
           ASSVAL

   141  Prompt ("Old file: ")
           LINE   141 "regression-compile-tmp/compare.imp"
           PUSH   PROMPT
           PUSHS  "Old file: "
           ASSPAR
           CALL  

   142  Rd line (A file) %while A file = ""
           LINE   142 "regression-compile-tmp/compare.imp"
           LOCATE L_0003
           PUSH   AFILE
           PUSHS  ""
           JUMPIF # L_0004
           PUSH   RDLINE
           PUSH   AFILE
           ASSPAR
           CALL  
           REPEAT L_0003
           LOCATE L_0004

   143  Prompt (pr)
           LINE   143 "regression-compile-tmp/compare.imp"
           PUSH   PROMPT
           PUSH   PR
           ASSPAR
           CALL  

   144  Rd line (B file) %while B file = ""
   145  
           LINE   144 "regression-compile-tmp/compare.imp"
           LOCATE L_0003
           PUSH   BFILE
           PUSHS  ""
           JUMPIF # L_0004
           PUSH   RDLINE
           PUSH   BFILE
           ASSPAR
           CALL  
           REPEAT L_0003
           LOCATE L_0004

   146  fname len = LENGTH(A file)
           LINE   146 "regression-compile-tmp/compare.imp"
           PUSH   FNAMELEN
           PUSH   LENGTH
           PUSH   AFILE
           ASSPAR
           CALL  
           ASSVAL

   147  %if fname len < LENGTH(B file) %then fname len = LENGTH(B file)
           LINE   147 "regression-compile-tmp/compare.imp"
           PUSH   FNAMELEN
           PUSH   LENGTH
           PUSH   BFILE
           ASSPAR
           CALL  
           JUMPIF >= L_0004
           PUSH   FNAMELEN
           PUSH   LENGTH
           PUSH   BFILE
           ASSPAR
           CALL  
           ASSVAL
           LOCATE L_0004

   148  %if fname len > 11 %then fname len = 11
   149  
           LINE   148 "regression-compile-tmp/compare.imp"
           PUSH   FNAMELEN
           PUSHI  #0x0000000b
           JUMPIF <= L_0004
           PUSH   FNAMELEN
           PUSHI  #0x0000000b
           ASSVAL
           LOCATE L_0004

   150  open input (A stream, A file)
           LINE   150 "regression-compile-tmp/compare.imp"
           PUSH   OPENINPUT
           PUSHI  #0x00000001
           ASSPAR
           PUSH   AFILE
           ASSPAR
           CALL  

   151  open input (B stream, B file)
   152  
           LINE   151 "regression-compile-tmp/compare.imp"
           PUSH   OPENINPUT
           PUSHI  #0x00000002
           ASSPAR
           PUSH   BFILE
           ASSPAR
           CALL  

   153  A file = "           ".A file
           LINE   153 "regression-compile-tmp/compare.imp"
           PUSH   AFILE
           PUSHS  "           "
           PUSH   AFILE
           CONCAT
           ASSVAL

   154  B file = "           ".B file
           LINE   154 "regression-compile-tmp/compare.imp"
           PUSH   BFILE
           PUSHS  "           "
           PUSH   BFILE
           CONCAT
           ASSVAL

   155  A file = SUBSTRING(A file, LENGTH(A file)-10, LENGTH(A file))
           LINE   155 "regression-compile-tmp/compare.imp"
           PUSH   AFILE
           PUSH   SUBSTRING
           PUSH   AFILE
           ASSPAR
           PUSH   LENGTH
           PUSH   AFILE
           ASSPAR
           CALL  
           PUSHI  #0x0000000a
           SUB   
           ASSPAR
           PUSH   LENGTH
           PUSH   AFILE
           ASSPAR
           CALL  
           ASSPAR
           CALL  
           ASSVAL

   156  B file = SUBSTRING(B file, LENGTH(B file)-10, LENGTH(B file))
   157  
           LINE   156 "regression-compile-tmp/compare.imp"
           PUSH   BFILE
           PUSH   SUBSTRING
           PUSH   BFILE
           ASSPAR
           PUSH   LENGTH
           PUSH   BFILE
           ASSPAR
           CALL  
           PUSHI  #0x0000000a
           SUB   
           ASSPAR
           PUSH   LENGTH
           PUSH   BFILE
           ASSPAR
           CALL  
           ASSPAR
           CALL  
           ASSVAL

   158  %cycle
           LINE   158 "regression-compile-tmp/compare.imp"
           LOCATE L_0003

   159     select input (A stream)
           LINE   159 "regression-compile-tmp/compare.imp"
           PUSH   SELECTINPUT
           PUSHI  #0x00000001
           ASSPAR
           CALL  

   160     refill (A, A num, A count)
           LINE   160 "regression-compile-tmp/compare.imp"
           PUSH   REFILL
           PUSH   A
           ASSPAR
           PUSH   ANUM
           ASSPAR
           PUSH   ACOUNT
           ASSPAR
           CALL  

   161     select input (B stream)
           LINE   161 "regression-compile-tmp/compare.imp"
           PUSH   SELECTINPUT
           PUSHI  #0x00000002
           ASSPAR
           CALL  

   162     refill (B, B num, B count)
           LINE   162 "regression-compile-tmp/compare.imp"
           PUSH   REFILL
           PUSH   B
           ASSPAR
           PUSH   BNUM
           ASSPAR
           PUSH   BCOUNT
           ASSPAR
           CALL  

   163     %exit %if A count <= 0 %and B count <= 0
           LINE   163 "regression-compile-tmp/compare.imp"
           PUSH   ACOUNT
           PUSHI  #0x00000000
           JUMPIF > L_0007
           PUSH   BCOUNT
           PUSHI  #0x00000000
           JUMPIF > L_0007
           GOTO   L_0004
           LOCATE L_0007

   164     find match (A num, B num)
           LINE   164 "regression-compile-tmp/compare.imp"
           PUSH   FINDMATCH
           PUSH   ANUM
           ASSPAR
           PUSH   BNUM
           ASSPAR
           CALL  

   165     %if A num # 1 %or B num # 1 %start
           LINE   165 "regression-compile-tmp/compare.imp"
           PUSH   ANUM
           PUSHI  #0x00000001
           JUMPIF # L_0008
           PUSH   BNUM
           PUSHI  #0x00000001
           JUMPIF = L_0007
           LOCATE L_0008

   166        print (A, A num-1, 'A')
           LINE   166 "regression-compile-tmp/compare.imp"
           PUSH   PRINT
           PUSH   A
           ASSPAR
           PUSH   ANUM
           PUSHI  #0x00000001
           SUB   
           ASSPAR
           PUSHI  #0x00000041
           ASSPAR
           CALL  

   167        print (B, B num-1, 'B')
           LINE   167 "regression-compile-tmp/compare.imp"
           PUSH   PRINT
           PUSH   B
           ASSPAR
           PUSH   BNUM
           PUSHI  #0x00000001
           SUB   
           ASSPAR
           PUSHI  #0x00000042
           ASSPAR
           CALL  

   168        Print string("---------------------".snl)
           LINE   168 "regression-compile-tmp/compare.imp"
           PUSH   PRINTSTRING
           PUSHS  "---------------------"
           PUSH   SNL
           CONCAT
           ASSPAR
           CALL  

   169        %if A num > Max Lines %start
           LINE   169 "regression-compile-tmp/compare.imp"
           PUSH   ANUM
           PUSHI  #0x00000200
           JUMPIF <= L_000a

   170           Print string ("*** Mismatch too large")
           LINE   170 "regression-compile-tmp/compare.imp"
           PUSH   PRINTSTRING
           PUSHS  "*** Mismatch too large"
           ASSPAR
           CALL  

   171           Newline
           LINE   171 "regression-compile-tmp/compare.imp"
           PUSH   NEWLINE
           CALL  

   172           %stop
           LINE   172 "regression-compile-tmp/compare.imp"
           STOP  

   173        %finish
           LINE   173 "regression-compile-tmp/compare.imp"
           LOCATE L_000a

   174     %finish
           LINE   174 "regression-compile-tmp/compare.imp"
           LOCATE L_0007

   175     Base('A') = Base('A') + A num
           LINE   175 "regression-compile-tmp/compare.imp"
           PUSH   BASE
           PUSHI  #0x00000041
           ACCESS
           PUSH   BASE
           PUSHI  #0x00000041
           ACCESS
           PUSH   ANUM
           ADD   
           ASSVAL

   176     Base('B') = Base('B') + B num
           LINE   176 "regression-compile-tmp/compare.imp"
           PUSH   BASE
           PUSHI  #0x00000042
           ACCESS
           PUSH   BASE
           PUSHI  #0x00000042
           ACCESS
           PUSH   BNUM
           ADD   
           ASSVAL

   177     A count = A count - A num
           LINE   177 "regression-compile-tmp/compare.imp"
           PUSH   ACOUNT
           PUSH   ACOUNT
           PUSH   ANUM
           SUB   
           ASSVAL

   178     B count = B count - B num
           LINE   178 "regression-compile-tmp/compare.imp"
           PUSH   BCOUNT
           PUSH   BCOUNT
           PUSH   BNUM
           SUB   
           ASSVAL

   179  %repeat
   180  
           LINE   179 "regression-compile-tmp/compare.imp"
           REPEAT L_0003
           LOCATE L_0004

   181  %end %of %program
   182  
           LINE   181 "regression-compile-tmp/compare.imp"
        END    _lev0id0 {lev=1 --> 0}
        END     {lev=0 --> -1}


