
     1  !***********************************************************************
     2  !*
     3  !*                    BCPL compiler steering routines
     4  !*
     5  !*                             Version E1.11
     6  !*
     7  !*       Copyright R.D. Eager   University of Kent   MCMLXXXIV
     8  !*
     9  !***********************************************************************
    10  !
    11  !
    12  !***********************************************************************
    13  !*
    14  !*          External references
    15  !*
    16  !***********************************************************************
    17  !
    18  %externalroutine compile(%string(255) s,%string(32) entry, %integername flag)
        O LINE   18 "regression-compile-tmp/bcpls.imp"
        $ DEF    COMPILE (_COMPILE) p1=V_00ad a/tf=7 b/format=0 c/ostate=23  type=0 (<type:0>) form=7 (routine) special=0 (<special:0>) linkage=3 (external) spec=0 indirect=0 unass=1
           { START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
              $ DEF    S p1=V_00ae a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              $ DEF    ENTRY p1=V_00af a/tf=31 b/format=20 c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
              $ DEF    FLAG p1=V_00b0 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=1}

    19  %end
           O LINE   19 "regression-compile-tmp/bcpls.imp"
        ; END    _COMPILE {lev=1 --> 0}

    20  %externalintegermap comreg(%integer n)
        O LINE   20 "regression-compile-tmp/bcpls.imp"
        $ DEF    COMREG (_COMREG) p1=V_00ae a/tf=19 b/format=1 c/ostate=23  type=1 (integer) form=9 (map) special=0 (<special:0>) linkage=3 (external) spec=0 indirect=0 unass=1
           { START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
              $ DEF    N p1=V_00af 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=1}

    21    %owninteger i
           O LINE   21 "regression-compile-tmp/bcpls.imp"
           $ DEF    I p1=V_00b0 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
           A INIT   1

    22    %result == i
           O LINE   22 "regression-compile-tmp/bcpls.imp"
           @ PUSH   I
           M MAP   

    23  %end
           O LINE   23 "regression-compile-tmp/bcpls.imp"
        ; END    _COMREG {lev=1 --> 0}

    24  %externalstring(255)%function failuremessage(%integer mess)
        O LINE   24 "regression-compile-tmp/bcpls.imp"
        $ DEF    FAILUREMESSAGE (_FAILUREMESSAGE) p1=V_00af a/tf=38 b/format=ff c/ostate=33  type=3 (string) form=8 (function) special=0 (<special:0>) linkage=3 (external) spec=0 indirect=1 unass=1
           { START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
              $ DEF    MESS p1=V_00b0 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=1}

    25    %result = "FAILURE: ".itos(mess, 0)
           O LINE   25 "regression-compile-tmp/bcpls.imp"
           ' PUSHS  "FAILURE: "
           @ PUSH   ITOS
           @ PUSH   MESS
           p ASSPAR
           N PUSHI  #0x00000000
           p ASSPAR
           E CALL  
           . CONCAT
           V RESULT

    26  %end
           O LINE   26 "regression-compile-tmp/bcpls.imp"
        ; END    _FAILUREMESSAGE {lev=1 --> 0}

    27  %externalintegerfunction return code
        O LINE   27 "regression-compile-tmp/bcpls.imp"
        $ DEF    RETURNCODE (_RETURNCODE) p1=V_00b0 a/tf=18 b/format=1 c/ostate=33  type=1 (integer) form=8 (function) special=0 (<special:0>) linkage=3 (external) spec=0 indirect=1 unass=1
           { START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
           } FINISH ) {lev=1}

    28    %result = 0
           O LINE   28 "regression-compile-tmp/bcpls.imp"
           N PUSHI  #0x00000000
           V RESULT

    29  %end
           O LINE   29 "regression-compile-tmp/bcpls.imp"
        ; END    _RETURNCODE {lev=1 --> 0}

    30  %externalroutine setfname(%string(40) file)
        O LINE   30 "regression-compile-tmp/bcpls.imp"
        $ DEF    SETFNAME (_SETFNAME) p1=V_00b1 a/tf=7 b/format=0 c/ostate=23  type=0 (<type:0>) form=7 (routine) special=0 (<special:0>) linkage=3 (external) spec=0 indirect=0 unass=1
           { START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
              $ DEF    FILE p1=V_00b2 a/tf=31 b/format=28 c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           } FINISH ) {lev=1}

    31  %end
    32  !
           O LINE   31 "regression-compile-tmp/bcpls.imp"
        ; END    _SETFNAME {lev=1 --> 0}

    33  %externalintegerfunction icl9cezbcplx(%string(255) parms)
        O LINE   33 "regression-compile-tmp/bcpls.imp"
        $ DEF    ICL9CEZBCPLX (_ICL9CEZBCPLX) p1=V_00b2 a/tf=18 b/format=1 c/ostate=33  type=1 (integer) form=8 (function) special=0 (<special:0>) linkage=3 (external) spec=0 indirect=1 unass=1
           { START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
              $ DEF    PARMS p1=V_00b3 a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           } FINISH ) {lev=1}

    34    %result = 0
           O LINE   34 "regression-compile-tmp/bcpls.imp"
           N PUSHI  #0x00000000
           V RESULT

    35  %end
    36  !
    37  !
    38  !***********************************************************************
    39  !*
    40  !*          S H U F F L E
    41  !*
    42  !*    This routine:
    43  !*      a) Moves any keyword parameters out of the first four parameter
    44  !*         positions
    45  !*      b) Puts the first four parameters into CPARMS (for COMPILE)
    46  !*      c) Puts the rest of the parameters into S (for passing over
    47  !*         via COMREG(9))
    48  !*
    49  !***********************************************************************
    50  !
           O LINE   35 "regression-compile-tmp/bcpls.imp"
        ; END    _ICL9CEZBCPLX {lev=1 --> 0}

    51  %routine shuffle(%string(*)%name s,cparms)
        O LINE   51 "regression-compile-tmp/bcpls.imp"
        $ DEF    SHUFFLE (_SHUFFLE) p1=V_00b3 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=1 --> 2, nested=0 --> 1}
              $ DEF    S p1=V_00b4 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
              $ DEF    CPARMS p1=V_00b5 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=1}

    52  %integer i
           O LINE   52 "regression-compile-tmp/bcpls.imp"
           $ DEF    I p1=V_00b6 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

    53  %string(255) work1,work2
           O LINE   53 "regression-compile-tmp/bcpls.imp"
           $ DEF    WORK1 p1=V_00b7 a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           $ DEF    WORK2 p1=V_00b8 a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

    54  %string(255)%array p(1:4)
    55  !
           O LINE   54 "regression-compile-tmp/bcpls.imp"
           $ DEF    P p1=V_00b9 a/tf=3b b/format=ff c/ostate=100  type=3 (string) form=11 (array) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           N PUSHI  #0x00000001
           N PUSHI  #0x00000004
           d DIM    0001 0001

    56  %if s = "?" %then %start;               ! Handle this specially
           O LINE   56 "regression-compile-tmp/bcpls.imp"
           @ PUSH   S
           ' PUSHS  "?"
           ? JUMPIF # L_0004

    57     cparms = ".IN,.NULL,.NULL,.NULL";    ! Never used really
           O LINE   57 "regression-compile-tmp/bcpls.imp"
           @ PUSH   CPARMS
           ' PUSHS  ".IN,.NULL,.NULL,.NULL"
           S ASSVAL

    58  %else
           O LINE   58 "regression-compile-tmp/bcpls.imp"
           F GOTO   L_0003
           : LOCATE L_0004

    59     %for i = 1,1,4 %cycle
           O LINE   59 "regression-compile-tmp/bcpls.imp"
           @ PUSH   I
           N PUSHI  #0x00000001
           N PUSHI  #0x00000004
           N PUSHI  #0x00000001
           f FOR    L_0006

    60        p(i) = "";                        ! Initialise
           O LINE   60 "regression-compile-tmp/bcpls.imp"
           @ PUSH   P
           @ PUSH   I
           a ACCESS
           ' PUSHS  ""
           S ASSVAL

    61     %repeat
    62     !
           O LINE   61 "regression-compile-tmp/bcpls.imp"
           B REPEAT L_0006
           : LOCATE L_0007

    63     s <- s.","
           O LINE   63 "regression-compile-tmp/bcpls.imp"
           @ PUSH   S
           @ PUSH   S
           ' PUSHS  ","
           . CONCAT
           j JAM   

    64     %for i = 1,1,4 %cycle
           O LINE   64 "regression-compile-tmp/bcpls.imp"
           @ PUSH   I
           N PUSHI  #0x00000001
           N PUSHI  #0x00000004
           N PUSHI  #0x00000001
           f FOR    L_0006

    65        %exit %unless s -> p(i).(",").s
           O LINE   65 "regression-compile-tmp/bcpls.imp"
           @ PUSH   S
           @ PUSH   P
           @ PUSH   I
           a ACCESS
           ' PUSHS  ","
           @ PUSH   S
           r RESOLVE flags=0007
           t bt     L_000a
           F GOTO   L_0007
           : LOCATE L_000a

    66     %repeat
    67     !
           O LINE   66 "regression-compile-tmp/bcpls.imp"
           B REPEAT L_0006
           : LOCATE L_0007

    68     %cycle i = 1,1,4
           O LINE   68 "regression-compile-tmp/bcpls.imp"
           @ PUSH   I
           N PUSHI  #0x00000001
           N PUSHI  #0x00000004
           N PUSHI  #0x00000001
           f FOR    L_0006

    69        %if p(i) -> work1.("=").work2 %then %start
           O LINE   69 "regression-compile-tmp/bcpls.imp"
           @ PUSH   P
           @ PUSH   I
           a ACCESS
           @ PUSH   WORK1
           ' PUSHS  "="
           @ PUSH   WORK2
           r RESOLVE flags=0007
           k bf     L_000a

    70           s = p(i).",".s
           O LINE   70 "regression-compile-tmp/bcpls.imp"
           @ PUSH   S
           @ PUSH   P
           @ PUSH   I
           a ACCESS
           ' PUSHS  ","
           . CONCAT
           @ PUSH   S
           . CONCAT
           S ASSVAL

    71           p(i) = ""
           O LINE   71 "regression-compile-tmp/bcpls.imp"
           @ PUSH   P
           @ PUSH   I
           a ACCESS
           ' PUSHS  ""
           S ASSVAL

    72        %finish
           O LINE   72 "regression-compile-tmp/bcpls.imp"
           : LOCATE L_000a

    73     %repeat
    74     !
           O LINE   73 "regression-compile-tmp/bcpls.imp"
           B REPEAT L_0006
           : LOCATE L_0007

    75     cparms = p(1).",".p(2).",".p(3).",".p(4)
           O LINE   75 "regression-compile-tmp/bcpls.imp"
           @ PUSH   CPARMS
           @ PUSH   P
           N PUSHI  #0x00000001
           a ACCESS
           ' PUSHS  ","
           . CONCAT
           @ PUSH   P
           N PUSHI  #0x00000002
           a ACCESS
           . CONCAT
           ' PUSHS  ","
           . CONCAT
           @ PUSH   P
           N PUSHI  #0x00000003
           a ACCESS
           . CONCAT
           ' PUSHS  ","
           . CONCAT
           @ PUSH   P
           N PUSHI  #0x00000004
           a ACCESS
           . CONCAT
           S ASSVAL

    76  %finish
           O LINE   76 "regression-compile-tmp/bcpls.imp"
           : LOCATE L_0003

    77  %end;   ! of shuffle
    78  !
    79  !
    80  !***********************************************************************
    81  !*
    82  !*          B C P L
    83  !*
    84  !***********************************************************************
    85  !
           O LINE   77 "regression-compile-tmp/bcpls.imp"
        ; END    _SHUFFLE {lev=1 --> 0}

    86  %externalroutine bcpl(%string(255) parms)
        O LINE   86 "regression-compile-tmp/bcpls.imp"
        $ DEF    BCPL (_BCPL) p1=V_00b4 a/tf=7 b/format=0 c/ostate=23  type=0 (<type:0>) form=7 (routine) special=0 (<special:0>) linkage=3 (external) spec=0 indirect=0 unass=1
           { START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
              $ DEF    PARMS p1=V_00b5 a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           } FINISH ) {lev=1}

    87  %integer flag
           O LINE   87 "regression-compile-tmp/bcpls.imp"
           $ DEF    FLAG p1=V_00b6 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

    88  %string(255) cparms,auxparms
    89  !
           O LINE   88 "regression-compile-tmp/bcpls.imp"
           $ DEF    CPARMS p1=V_00b7 a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           $ DEF    AUXPARMS p1=V_00b8 a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

    90  setfname("")
           O LINE   90 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SETFNAME
           ' PUSHS  ""
           p ASSPAR
           E CALL  

    91  shuffle(parms,cparms)
           O LINE   91 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SHUFFLE
           @ PUSH   PARMS
           p ASSPAR
           @ PUSH   CPARMS
           p ASSPAR
           E CALL  

    92  auxparms = parms;                       ! Make copy, to ensure string is word-aligned
           O LINE   92 "regression-compile-tmp/bcpls.imp"
           @ PUSH   AUXPARMS
           @ PUSH   PARMS
           S ASSVAL

    93  comreg(9) = addr(auxparms);             ! Picked up by compiler
    94  !
           O LINE   93 "regression-compile-tmp/bcpls.imp"
           @ PUSH   COMREG
           N PUSHI  #0x00000009
           p ASSPAR
           E CALL  
           @ PUSH   ADDR
           @ PUSH   AUXPARMS
           p ASSPAR
           E CALL  
           S ASSVAL

    95  compile(cparms,"ICL9CEZBCPL1",flag)
           O LINE   95 "regression-compile-tmp/bcpls.imp"
           @ PUSH   COMPILE
           @ PUSH   CPARMS
           p ASSPAR
           ' PUSHS  "ICL9CEZBCPL1"
           p ASSPAR
           @ PUSH   FLAG
           p ASSPAR
           E CALL  

    96  flag = return code
           O LINE   96 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           @ PUSH   RETURNCODE
           E CALL  
           S ASSVAL

    97  flag = 0 %if flag = -1;                 ! INT:A
           O LINE   97 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           N PUSHI  #0x00000001
           U NEGATE
           ? JUMPIF # L_0004
           @ PUSH   FLAG
           N PUSHI  #0x00000000
           S ASSVAL
           : LOCATE L_0004

    98  %if 0 # flag < 1000 %then %start 
           O LINE   98 "regression-compile-tmp/bcpls.imp"
           N PUSHI  #0x00000000
           @ PUSH   FLAG
           " JUMPIFD = L_0004
           N PUSHI  #0x000003e8
           ? JUMPIF >= L_0004

    99     newline
           O LINE   99 "regression-compile-tmp/bcpls.imp"
           @ PUSH   NEWLINE
           E CALL  

   100     printstring("BCPL fails -".failuremessage(flag))
           O LINE   100 "regression-compile-tmp/bcpls.imp"
           @ PUSH   PRINTSTRING
           ' PUSHS  "BCPL fails -"
           @ PUSH   FAILUREMESSAGE
           @ PUSH   FLAG
           p ASSPAR
           E CALL  
           . CONCAT
           p ASSPAR
           E CALL  

   101  %finish
           O LINE   101 "regression-compile-tmp/bcpls.imp"
           : LOCATE L_0004

   102  %end;   ! of bcpl
   103  !
   104  !
   105  !***********************************************************************
   106  !*
   107  !*          B C P L C G E N
   108  !*
   109  !***********************************************************************
   110  !
           O LINE   102 "regression-compile-tmp/bcpls.imp"
        ; END    _BCPL {lev=1 --> 0}

   111  %externalroutine bcplcgen(%string(255) parms)
        O LINE   111 "regression-compile-tmp/bcpls.imp"
        $ DEF    BCPLCGEN (_BCPLCGEN) p1=V_00b5 a/tf=7 b/format=0 c/ostate=23  type=0 (<type:0>) form=7 (routine) special=0 (<special:0>) linkage=3 (external) spec=0 indirect=0 unass=1
           { START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
              $ DEF    PARMS p1=V_00b6 a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           } FINISH ) {lev=1}

   112  %integer flag
           O LINE   112 "regression-compile-tmp/bcpls.imp"
           $ DEF    FLAG p1=V_00b7 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

   113  %string(255) cparms,auxparms
   114  !
           O LINE   113 "regression-compile-tmp/bcpls.imp"
           $ DEF    CPARMS p1=V_00b8 a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           $ DEF    AUXPARMS p1=V_00b9 a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

   115  setfname("")
           O LINE   115 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SETFNAME
           ' PUSHS  ""
           p ASSPAR
           E CALL  

   116  shuffle(parms,cparms)
           O LINE   116 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SHUFFLE
           @ PUSH   PARMS
           p ASSPAR
           @ PUSH   CPARMS
           p ASSPAR
           E CALL  

   117  auxparms = parms;                       ! Make copy, to ensure string is word-aligned
           O LINE   117 "regression-compile-tmp/bcpls.imp"
           @ PUSH   AUXPARMS
           @ PUSH   PARMS
           S ASSVAL

   118  comreg(9) = addr(auxparms);             ! Picked up by codegenerator
   119  !
           O LINE   118 "regression-compile-tmp/bcpls.imp"
           @ PUSH   COMREG
           N PUSHI  #0x00000009
           p ASSPAR
           E CALL  
           @ PUSH   ADDR
           @ PUSH   AUXPARMS
           p ASSPAR
           E CALL  
           S ASSVAL

   120  compile(cparms,"ICL9CEZBCPL2",flag)
           O LINE   120 "regression-compile-tmp/bcpls.imp"
           @ PUSH   COMPILE
           @ PUSH   CPARMS
           p ASSPAR
           ' PUSHS  "ICL9CEZBCPL2"
           p ASSPAR
           @ PUSH   FLAG
           p ASSPAR
           E CALL  

   121  flag = return code
           O LINE   121 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           @ PUSH   RETURNCODE
           E CALL  
           S ASSVAL

   122  flag = 0 %if flag = -1;                 ! INT:A
           O LINE   122 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           N PUSHI  #0x00000001
           U NEGATE
           ? JUMPIF # L_0004
           @ PUSH   FLAG
           N PUSHI  #0x00000000
           S ASSVAL
           : LOCATE L_0004

   123  %if 0 # flag < 1000 %then %start
           O LINE   123 "regression-compile-tmp/bcpls.imp"
           N PUSHI  #0x00000000
           @ PUSH   FLAG
           " JUMPIFD = L_0004
           N PUSHI  #0x000003e8
           ? JUMPIF >= L_0004

   124     newline
           O LINE   124 "regression-compile-tmp/bcpls.imp"
           @ PUSH   NEWLINE
           E CALL  

   125     printstring("BCPLCGEN fails -".failuremessage(flag))
           O LINE   125 "regression-compile-tmp/bcpls.imp"
           @ PUSH   PRINTSTRING
           ' PUSHS  "BCPLCGEN fails -"
           @ PUSH   FAILUREMESSAGE
           @ PUSH   FLAG
           p ASSPAR
           E CALL  
           . CONCAT
           p ASSPAR
           E CALL  

   126  %finish
           O LINE   126 "regression-compile-tmp/bcpls.imp"
           : LOCATE L_0004

   127  %end;   ! of bcplcgen
   128  !
   129  !
   130  !***********************************************************************
   131  !*
   132  !*          B C P L V
   133  !*
   134  !***********************************************************************
   135  !
           O LINE   127 "regression-compile-tmp/bcpls.imp"
        ; END    _BCPLCGEN {lev=1 --> 0}

   136  %externalroutine bcplv(%string(255) parms)
        O LINE   136 "regression-compile-tmp/bcpls.imp"
        $ DEF    BCPLV (_BCPLV) p1=V_00b6 a/tf=7 b/format=0 c/ostate=23  type=0 (<type:0>) form=7 (routine) special=0 (<special:0>) linkage=3 (external) spec=0 indirect=0 unass=1
           { START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
              $ DEF    PARMS p1=V_00b7 a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           } FINISH ) {lev=1}

   137  %integer flag
           O LINE   137 "regression-compile-tmp/bcpls.imp"
           $ DEF    FLAG p1=V_00b8 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

   138  %string(255) cparms,auxparms
   139  !
           O LINE   138 "regression-compile-tmp/bcpls.imp"
           $ DEF    CPARMS p1=V_00b9 a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           $ DEF    AUXPARMS p1=V_00ba a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

   140  setfname("")
           O LINE   140 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SETFNAME
           ' PUSHS  ""
           p ASSPAR
           E CALL  

   141  shuffle(parms,cparms)
           O LINE   141 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SHUFFLE
           @ PUSH   PARMS
           p ASSPAR
           @ PUSH   CPARMS
           p ASSPAR
           E CALL  

   142  auxparms = parms;                       ! Make copy, to ensure string is word-aligned
           O LINE   142 "regression-compile-tmp/bcpls.imp"
           @ PUSH   AUXPARMS
           @ PUSH   PARMS
           S ASSVAL

   143  comreg(9) = addr(auxparms);             ! Picked up by codegenerator
   144  !
           O LINE   143 "regression-compile-tmp/bcpls.imp"
           @ PUSH   COMREG
           N PUSHI  #0x00000009
           p ASSPAR
           E CALL  
           @ PUSH   ADDR
           @ PUSH   AUXPARMS
           p ASSPAR
           E CALL  
           S ASSVAL

   145  compile(cparms,"ICL9CEZBCPLV",flag)
           O LINE   145 "regression-compile-tmp/bcpls.imp"
           @ PUSH   COMPILE
           @ PUSH   CPARMS
           p ASSPAR
           ' PUSHS  "ICL9CEZBCPLV"
           p ASSPAR
           @ PUSH   FLAG
           p ASSPAR
           E CALL  

   146  flag = return code
           O LINE   146 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           @ PUSH   RETURNCODE
           E CALL  
           S ASSVAL

   147  flag = 0 %if flag = -1;                 ! INT:A
           O LINE   147 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           N PUSHI  #0x00000001
           U NEGATE
           ? JUMPIF # L_0004
           @ PUSH   FLAG
           N PUSHI  #0x00000000
           S ASSVAL
           : LOCATE L_0004

   148  %if 0 # flag < 1000 %then %start
           O LINE   148 "regression-compile-tmp/bcpls.imp"
           N PUSHI  #0x00000000
           @ PUSH   FLAG
           " JUMPIFD = L_0004
           N PUSHI  #0x000003e8
           ? JUMPIF >= L_0004

   149     newline
           O LINE   149 "regression-compile-tmp/bcpls.imp"
           @ PUSH   NEWLINE
           E CALL  

   150     printstring("BCPLV fails -".failuremessage(flag))
           O LINE   150 "regression-compile-tmp/bcpls.imp"
           @ PUSH   PRINTSTRING
           ' PUSHS  "BCPLV fails -"
           @ PUSH   FAILUREMESSAGE
           @ PUSH   FLAG
           p ASSPAR
           E CALL  
           . CONCAT
           p ASSPAR
           E CALL  

   151  %finish
           O LINE   151 "regression-compile-tmp/bcpls.imp"
           : LOCATE L_0004

   152  %end;   ! of bcplv
   153  !
   154  !
   155  !***********************************************************************
   156  !*
   157  !*          B C P L W
   158  !*
   159  !***********************************************************************
   160  !
           O LINE   152 "regression-compile-tmp/bcpls.imp"
        ; END    _BCPLV {lev=1 --> 0}

   161  %externalroutine bcplw(%string(255) parms)
        O LINE   161 "regression-compile-tmp/bcpls.imp"
        $ DEF    BCPLW (_BCPLW) p1=V_00b7 a/tf=7 b/format=0 c/ostate=23  type=0 (<type:0>) form=7 (routine) special=0 (<special:0>) linkage=3 (external) spec=0 indirect=0 unass=1
           { START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
              $ DEF    PARMS p1=V_00b8 a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           } FINISH ) {lev=1}

   162  %integer flag
           O LINE   162 "regression-compile-tmp/bcpls.imp"
           $ DEF    FLAG p1=V_00b9 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

   163  %string(255) cparms,auxparms
   164  !
           O LINE   163 "regression-compile-tmp/bcpls.imp"
           $ DEF    CPARMS p1=V_00ba a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           $ DEF    AUXPARMS p1=V_00bb a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

   165  setfname("")
           O LINE   165 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SETFNAME
           ' PUSHS  ""
           p ASSPAR
           E CALL  

   166  shuffle(parms,cparms)
           O LINE   166 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SHUFFLE
           @ PUSH   PARMS
           p ASSPAR
           @ PUSH   CPARMS
           p ASSPAR
           E CALL  

   167  auxparms = parms;                       ! Make copy, to ensure string is word-aligned
           O LINE   167 "regression-compile-tmp/bcpls.imp"
           @ PUSH   AUXPARMS
           @ PUSH   PARMS
           S ASSVAL

   168  comreg(9) = addr(auxparms);             ! Picked up by codegenerator
   169  !
           O LINE   168 "regression-compile-tmp/bcpls.imp"
           @ PUSH   COMREG
           N PUSHI  #0x00000009
           p ASSPAR
           E CALL  
           @ PUSH   ADDR
           @ PUSH   AUXPARMS
           p ASSPAR
           E CALL  
           S ASSVAL

   170  compile(cparms,"ICL9CEZBCPLW",flag)
           O LINE   170 "regression-compile-tmp/bcpls.imp"
           @ PUSH   COMPILE
           @ PUSH   CPARMS
           p ASSPAR
           ' PUSHS  "ICL9CEZBCPLW"
           p ASSPAR
           @ PUSH   FLAG
           p ASSPAR
           E CALL  

   171  flag = return code
           O LINE   171 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           @ PUSH   RETURNCODE
           E CALL  
           S ASSVAL

   172  flag = 0 %if flag = -1;                 ! INT:A
           O LINE   172 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           N PUSHI  #0x00000001
           U NEGATE
           ? JUMPIF # L_0004
           @ PUSH   FLAG
           N PUSHI  #0x00000000
           S ASSVAL
           : LOCATE L_0004

   173  %if 0 # flag < 1000 %then %start
           O LINE   173 "regression-compile-tmp/bcpls.imp"
           N PUSHI  #0x00000000
           @ PUSH   FLAG
           " JUMPIFD = L_0004
           N PUSHI  #0x000003e8
           ? JUMPIF >= L_0004

   174     newline
           O LINE   174 "regression-compile-tmp/bcpls.imp"
           @ PUSH   NEWLINE
           E CALL  

   175     printstring("BCPLW fails -".failuremessage(flag))
           O LINE   175 "regression-compile-tmp/bcpls.imp"
           @ PUSH   PRINTSTRING
           ' PUSHS  "BCPLW fails -"
           @ PUSH   FAILUREMESSAGE
           @ PUSH   FLAG
           p ASSPAR
           E CALL  
           . CONCAT
           p ASSPAR
           E CALL  

   176  %finish
           O LINE   176 "regression-compile-tmp/bcpls.imp"
           : LOCATE L_0004

   177  %end;   ! of bcplw
   178  !
   179  !
   180  !***********************************************************************
   181  !*
   182  !*          B C P L Z
   183  !*
   184  !***********************************************************************
   185  !
           O LINE   177 "regression-compile-tmp/bcpls.imp"
        ; END    _BCPLW {lev=1 --> 0}

   186  %externalroutine bcplz(%string(255) parms)
        O LINE   186 "regression-compile-tmp/bcpls.imp"
        $ DEF    BCPLZ (_BCPLZ) p1=V_00b8 a/tf=7 b/format=0 c/ostate=23  type=0 (<type:0>) form=7 (routine) special=0 (<special:0>) linkage=3 (external) spec=0 indirect=0 unass=1
           { START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
              $ DEF    PARMS p1=V_00b9 a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           } FINISH ) {lev=1}

   187  %integer flag
           O LINE   187 "regression-compile-tmp/bcpls.imp"
           $ DEF    FLAG p1=V_00ba 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

   188  %string(255) cparms,auxparms
   189  !
           O LINE   188 "regression-compile-tmp/bcpls.imp"
           $ DEF    CPARMS p1=V_00bb a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           $ DEF    AUXPARMS p1=V_00bc a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

   190  setfname("")
           O LINE   190 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SETFNAME
           ' PUSHS  ""
           p ASSPAR
           E CALL  

   191  shuffle(parms,cparms)
           O LINE   191 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SHUFFLE
           @ PUSH   PARMS
           p ASSPAR
           @ PUSH   CPARMS
           p ASSPAR
           E CALL  

   192  auxparms = parms;                       ! Make copy, to ensure string is word-aligned
           O LINE   192 "regression-compile-tmp/bcpls.imp"
           @ PUSH   AUXPARMS
           @ PUSH   PARMS
           S ASSVAL

   193  comreg(9) = addr(auxparms);             ! Picked up by codegenerator
   194  !
           O LINE   193 "regression-compile-tmp/bcpls.imp"
           @ PUSH   COMREG
           N PUSHI  #0x00000009
           p ASSPAR
           E CALL  
           @ PUSH   ADDR
           @ PUSH   AUXPARMS
           p ASSPAR
           E CALL  
           S ASSVAL

   195  compile(cparms,"ICL9CEZBCPLZ",flag)
           O LINE   195 "regression-compile-tmp/bcpls.imp"
           @ PUSH   COMPILE
           @ PUSH   CPARMS
           p ASSPAR
           ' PUSHS  "ICL9CEZBCPLZ"
           p ASSPAR
           @ PUSH   FLAG
           p ASSPAR
           E CALL  

   196  flag = return code
           O LINE   196 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           @ PUSH   RETURNCODE
           E CALL  
           S ASSVAL

   197  flag = 0 %if flag = -1;                 ! INT:A
           O LINE   197 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           N PUSHI  #0x00000001
           U NEGATE
           ? JUMPIF # L_0004
           @ PUSH   FLAG
           N PUSHI  #0x00000000
           S ASSVAL
           : LOCATE L_0004

   198  %if 0 # flag < 1000 %then %start
           O LINE   198 "regression-compile-tmp/bcpls.imp"
           N PUSHI  #0x00000000
           @ PUSH   FLAG
           " JUMPIFD = L_0004
           N PUSHI  #0x000003e8
           ? JUMPIF >= L_0004

   199     newline
           O LINE   199 "regression-compile-tmp/bcpls.imp"
           @ PUSH   NEWLINE
           E CALL  

   200     printstring("BCPLZ fails -".failuremessage(flag))
           O LINE   200 "regression-compile-tmp/bcpls.imp"
           @ PUSH   PRINTSTRING
           ' PUSHS  "BCPLZ fails -"
           @ PUSH   FAILUREMESSAGE
           @ PUSH   FLAG
           p ASSPAR
           E CALL  
           . CONCAT
           p ASSPAR
           E CALL  

   201  %finish
           O LINE   201 "regression-compile-tmp/bcpls.imp"
           : LOCATE L_0004

   202  %end;   ! of bcplz
   203  !
   204  !
   205  !***********************************************************************
   206  !*
   207  !*          B C P L R
   208  !*
   209  !***********************************************************************
   210  !
           O LINE   202 "regression-compile-tmp/bcpls.imp"
        ; END    _BCPLZ {lev=1 --> 0}

   211  %externalroutine bcplr(%string(255) parms)
        O LINE   211 "regression-compile-tmp/bcpls.imp"
        $ DEF    BCPLR (_BCPLR) p1=V_00b9 a/tf=7 b/format=0 c/ostate=23  type=0 (<type:0>) form=7 (routine) special=0 (<special:0>) linkage=3 (external) spec=0 indirect=0 unass=1
           { START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
              $ DEF    PARMS p1=V_00ba a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           } FINISH ) {lev=1}

   212  %integer flag
           O LINE   212 "regression-compile-tmp/bcpls.imp"
           $ DEF    FLAG p1=V_00bb 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

   213  %string(255) cparms,auxparms
   214  !
           O LINE   213 "regression-compile-tmp/bcpls.imp"
           $ DEF    CPARMS p1=V_00bc a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           $ DEF    AUXPARMS p1=V_00bd a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

   215  setfname("")
           O LINE   215 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SETFNAME
           ' PUSHS  ""
           p ASSPAR
           E CALL  

   216  shuffle(parms,cparms)
           O LINE   216 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SHUFFLE
           @ PUSH   PARMS
           p ASSPAR
           @ PUSH   CPARMS
           p ASSPAR
           E CALL  

   217  auxparms = parms;                       ! Make copy, to ensure string is word-aligned
           O LINE   217 "regression-compile-tmp/bcpls.imp"
           @ PUSH   AUXPARMS
           @ PUSH   PARMS
           S ASSVAL

   218  comreg(9) = addr(auxparms);             ! Picked up by codegenerator
   219  !
           O LINE   218 "regression-compile-tmp/bcpls.imp"
           @ PUSH   COMREG
           N PUSHI  #0x00000009
           p ASSPAR
           E CALL  
           @ PUSH   ADDR
           @ PUSH   AUXPARMS
           p ASSPAR
           E CALL  
           S ASSVAL

   220  compile(cparms,"ICL9CEZBCPLR",flag)
           O LINE   220 "regression-compile-tmp/bcpls.imp"
           @ PUSH   COMPILE
           @ PUSH   CPARMS
           p ASSPAR
           ' PUSHS  "ICL9CEZBCPLR"
           p ASSPAR
           @ PUSH   FLAG
           p ASSPAR
           E CALL  

   221  flag = return code
           O LINE   221 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           @ PUSH   RETURNCODE
           E CALL  
           S ASSVAL

   222  flag = 0 %if flag = -1;                 ! INT:A
           O LINE   222 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           N PUSHI  #0x00000001
           U NEGATE
           ? JUMPIF # L_0004
           @ PUSH   FLAG
           N PUSHI  #0x00000000
           S ASSVAL
           : LOCATE L_0004

   223  %if 0 # flag < 1000 %then %start
           O LINE   223 "regression-compile-tmp/bcpls.imp"
           N PUSHI  #0x00000000
           @ PUSH   FLAG
           " JUMPIFD = L_0004
           N PUSHI  #0x000003e8
           ? JUMPIF >= L_0004

   224     newline
           O LINE   224 "regression-compile-tmp/bcpls.imp"
           @ PUSH   NEWLINE
           E CALL  

   225     printstring("BCPLR fails -".failuremessage(flag))
           O LINE   225 "regression-compile-tmp/bcpls.imp"
           @ PUSH   PRINTSTRING
           ' PUSHS  "BCPLR fails -"
           @ PUSH   FAILUREMESSAGE
           @ PUSH   FLAG
           p ASSPAR
           E CALL  
           . CONCAT
           p ASSPAR
           E CALL  

   226  %finish
           O LINE   226 "regression-compile-tmp/bcpls.imp"
           : LOCATE L_0004

   227  %end;   ! of bcplr
   228  !
   229  !
   230  !***********************************************************************
   231  !*
   232  !*          B C P L Q
   233  !*
   234  !***********************************************************************
   235  !
           O LINE   227 "regression-compile-tmp/bcpls.imp"
        ; END    _BCPLR {lev=1 --> 0}

   236  %externalroutine bcplq(%string(255) parms)
        O LINE   236 "regression-compile-tmp/bcpls.imp"
        $ DEF    BCPLQ (_BCPLQ) p1=V_00ba a/tf=7 b/format=0 c/ostate=23  type=0 (<type:0>) form=7 (routine) special=0 (<special:0>) linkage=3 (external) spec=0 indirect=0 unass=1
           { START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
              $ DEF    PARMS p1=V_00bb a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           } FINISH ) {lev=1}

   237  %integer flag
           O LINE   237 "regression-compile-tmp/bcpls.imp"
           $ DEF    FLAG p1=V_00bc 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

   238  %string(255) cparms,auxparms
   239  !
           O LINE   238 "regression-compile-tmp/bcpls.imp"
           $ DEF    CPARMS p1=V_00bd a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           $ DEF    AUXPARMS p1=V_00be a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0

   240  setfname("")
           O LINE   240 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SETFNAME
           ' PUSHS  ""
           p ASSPAR
           E CALL  

   241  shuffle(parms,cparms)
           O LINE   241 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SHUFFLE
           @ PUSH   PARMS
           p ASSPAR
           @ PUSH   CPARMS
           p ASSPAR
           E CALL  

   242  auxparms = parms;                       ! Make copy, to ensure string is word-aligned
           O LINE   242 "regression-compile-tmp/bcpls.imp"
           @ PUSH   AUXPARMS
           @ PUSH   PARMS
           S ASSVAL

   243  comreg(9) = addr(auxparms);             ! Picked up by codegenerator
   244  !
           O LINE   243 "regression-compile-tmp/bcpls.imp"
           @ PUSH   COMREG
           N PUSHI  #0x00000009
           p ASSPAR
           E CALL  
           @ PUSH   ADDR
           @ PUSH   AUXPARMS
           p ASSPAR
           E CALL  
           S ASSVAL

   245  compile(cparms,"ICL9CEZBCPLQ",flag)
           O LINE   245 "regression-compile-tmp/bcpls.imp"
           @ PUSH   COMPILE
           @ PUSH   CPARMS
           p ASSPAR
           ' PUSHS  "ICL9CEZBCPLQ"
           p ASSPAR
           @ PUSH   FLAG
           p ASSPAR
           E CALL  

   246  flag = return code
           O LINE   246 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           @ PUSH   RETURNCODE
           E CALL  
           S ASSVAL

   247  flag = 0 %if flag = -1;                 ! INT:A
           O LINE   247 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           N PUSHI  #0x00000001
           U NEGATE
           ? JUMPIF # L_0004
           @ PUSH   FLAG
           N PUSHI  #0x00000000
           S ASSVAL
           : LOCATE L_0004

   248  %if 0 # flag < 1000 %then %start
           O LINE   248 "regression-compile-tmp/bcpls.imp"
           N PUSHI  #0x00000000
           @ PUSH   FLAG
           " JUMPIFD = L_0004
           N PUSHI  #0x000003e8
           ? JUMPIF >= L_0004

   249     newline
           O LINE   249 "regression-compile-tmp/bcpls.imp"
           @ PUSH   NEWLINE
           E CALL  

   250     printstring("BCPLQ fails -".failuremessage(flag))
           O LINE   250 "regression-compile-tmp/bcpls.imp"
           @ PUSH   PRINTSTRING
           ' PUSHS  "BCPLQ fails -"
           @ PUSH   FAILUREMESSAGE
           @ PUSH   FLAG
           p ASSPAR
           E CALL  
           . CONCAT
           p ASSPAR
           E CALL  

   251  %finish
           O LINE   251 "regression-compile-tmp/bcpls.imp"
           : LOCATE L_0004

   252  %end;   ! of bcplq
   253  !
   254  !
   255  !***********************************************************************
   256  !*
   257  !*          B C P L X R E F
   258  !*
   259  !***********************************************************************
   260  !
           O LINE   252 "regression-compile-tmp/bcpls.imp"
        ; END    _BCPLQ {lev=1 --> 0}

   261  %externalroutine bcplxref(%string(255) parms)
        O LINE   261 "regression-compile-tmp/bcpls.imp"
        $ DEF    BCPLXREF (_BCPLXREF) p1=V_00bb a/tf=7 b/format=0 c/ostate=23  type=0 (<type:0>) form=7 (routine) special=0 (<special:0>) linkage=3 (external) spec=0 indirect=0 unass=1
           { START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
              $ DEF    PARMS p1=V_00bc a/tf=31 b/format=ff c/ostate=0  type=3 (string) form=1 (simple) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=0 unass=0
           } FINISH ) {lev=1}

   262  %integer flag
   263  !
           O LINE   262 "regression-compile-tmp/bcpls.imp"
           $ DEF    FLAG p1=V_00bd 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

   264  setfname("")
           O LINE   264 "regression-compile-tmp/bcpls.imp"
           @ PUSH   SETFNAME
           ' PUSHS  ""
           p ASSPAR
           E CALL  

   265  flag = icl9cezbcplx(parms)
           O LINE   265 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           @ PUSH   ICL9CEZBCPLX
           @ PUSH   PARMS
           p ASSPAR
           E CALL  
           S ASSVAL

   266  flag = 0 %if flag = -1;                 ! INT:A
           O LINE   266 "regression-compile-tmp/bcpls.imp"
           @ PUSH   FLAG
           N PUSHI  #0x00000001
           U NEGATE
           ? JUMPIF # L_0004
           @ PUSH   FLAG
           N PUSHI  #0x00000000
           S ASSVAL
           : LOCATE L_0004

   267  %if 0 # flag < 1000 %then %start
           O LINE   267 "regression-compile-tmp/bcpls.imp"
           N PUSHI  #0x00000000
           @ PUSH   FLAG
           " JUMPIFD = L_0004
           N PUSHI  #0x000003e8
           ? JUMPIF >= L_0004

   268     newline
           O LINE   268 "regression-compile-tmp/bcpls.imp"
           @ PUSH   NEWLINE
           E CALL  

   269     printstring("BCPLXREF fails -".failuremessage(flag))
           O LINE   269 "regression-compile-tmp/bcpls.imp"
           @ PUSH   PRINTSTRING
           ' PUSHS  "BCPLXREF fails -"
           @ PUSH   FAILUREMESSAGE
           @ PUSH   FLAG
           p ASSPAR
           E CALL  
           . CONCAT
           p ASSPAR
           E CALL  

   270  %finish
           O LINE   270 "regression-compile-tmp/bcpls.imp"
           : LOCATE L_0004

   271  %end;   ! of bcplxref
   272  
           O LINE   271 "regression-compile-tmp/bcpls.imp"
        ; END    _BCPLXREF {lev=1 --> 0}

   273  %begin
        O LINE   273 "regression-compile-tmp/bcpls.imp"
        H BEGIN  _lev0id0 {lev=0 --> 1}

   274    bcpl("")
           O LINE   274 "regression-compile-tmp/bcpls.imp"
           @ PUSH   BCPL
           ' PUSHS  ""
           p ASSPAR
           E CALL  

   275  %end
   276  
           O LINE   275 "regression-compile-tmp/bcpls.imp"
        ; END    _lev0id0 {lev=1 --> 0}

   277  %endoffile
        O LINE   277 "regression-compile-tmp/bcpls.imp"
        ; END     {lev=0 --> -1}


