
     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)
503 @ 4405:         LINE   18 "regression-compile-tmp/bcpls.imp"
504 @ 4441:         DEF    COMPILE (_COMPILE) p1=V_0081 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
505 @ 4460:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
506 @ 4461:               DEF    S p1=V_0082 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
507 @ 4474:               DEF    ENTRY p1=V_0083 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
508 @ 4491:               DEF    FLAG p1=V_0084 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
509 @ 4507:            FINISH ) {lev=1}

    19  %end
510 @ 4508:            LINE   19 "regression-compile-tmp/bcpls.imp"
511 @ 4544:         END    _COMPILE {lev=1 --> 0}

    20  %externalintegermap comreg(%integer n)
512 @ 4545:         LINE   20 "regression-compile-tmp/bcpls.imp"
513 @ 4581:         DEF    COMREG (_COMREG) p1=V_0082 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
514 @ 4599:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
515 @ 4600:               DEF    N p1=V_0083 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
516 @ 4613:            FINISH ) {lev=1}

    21    %owninteger i
517 @ 4614:            LINE   21 "regression-compile-tmp/bcpls.imp"
518 @ 4650:            DEF    I p1=V_0084 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
519 @ 4663:            INIT   1

    22    %result == i
520 @ 4666:            LINE   22 "regression-compile-tmp/bcpls.imp"
521 @ 4702:            PUSH   I
522 @ 4705:            MAP   

    23  %end
523 @ 4706:            LINE   23 "regression-compile-tmp/bcpls.imp"
524 @ 4742:         END    _COMREG {lev=1 --> 0}

    24  %externalstring(255)%function failuremessage(%integer mess)
525 @ 4743:         LINE   24 "regression-compile-tmp/bcpls.imp"
526 @ 4779:         DEF    FAILUREMESSAGE (_FAILUREMESSAGE) p1=V_0083 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
527 @ 4805:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
528 @ 4806:               DEF    MESS p1=V_0084 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
529 @ 4822:            FINISH ) {lev=1}

    25    %result = "FAILURE: ".itos(mess, 0)
530 @ 4823:            LINE   25 "regression-compile-tmp/bcpls.imp"
531 @ 4859:            PUSHS  "FAILURE: "
532 @ 4870:            PUSH   ITOS
533 @ 4873:            PUSH   MESS
534 @ 4876:            ASSPAR
535 @ 4877:            PUSHI  #0x00000000
536 @ 4882:            ASSPAR
537 @ 4883:            CALL  
538 @ 4884:            CONCAT
539 @ 4885:            RESULT

    26  %end
540 @ 4886:            LINE   26 "regression-compile-tmp/bcpls.imp"
541 @ 4922:         END    _FAILUREMESSAGE {lev=1 --> 0}

    27  %externalintegerfunction return code
542 @ 4923:         LINE   27 "regression-compile-tmp/bcpls.imp"
543 @ 4959:         DEF    RETURNCODE (_RETURNCODE) p1=V_0084 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
544 @ 4981:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
545 @ 4982:            FINISH ) {lev=1}

    28    %result = 0
546 @ 4983:            LINE   28 "regression-compile-tmp/bcpls.imp"
547 @ 5019:            PUSHI  #0x00000000
548 @ 5024:            RESULT

    29  %end
549 @ 5025:            LINE   29 "regression-compile-tmp/bcpls.imp"
550 @ 5061:         END    _RETURNCODE {lev=1 --> 0}

    30  %externalroutine setfname(%string(40) file)
551 @ 5062:         LINE   30 "regression-compile-tmp/bcpls.imp"
552 @ 5098:         DEF    SETFNAME (_SETFNAME) p1=V_0085 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
553 @ 5118:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
554 @ 5119:               DEF    FILE p1=V_0086 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
555 @ 5135:            FINISH ) {lev=1}

    31  %end
    32  !
556 @ 5136:            LINE   31 "regression-compile-tmp/bcpls.imp"
557 @ 5172:         END    _SETFNAME {lev=1 --> 0}

    33  %externalintegerfunction icl9cezbcplx(%string(255) parms)
558 @ 5173:         LINE   33 "regression-compile-tmp/bcpls.imp"
559 @ 5209:         DEF    ICL9CEZBCPLX (_ICL9CEZBCPLX) p1=V_0086 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
560 @ 5233:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
561 @ 5234:               DEF    PARMS p1=V_0087 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
562 @ 5251:            FINISH ) {lev=1}

    34    %result = 0
563 @ 5252:            LINE   34 "regression-compile-tmp/bcpls.imp"
564 @ 5288:            PUSHI  #0x00000000
565 @ 5293:            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  !
566 @ 5294:            LINE   35 "regression-compile-tmp/bcpls.imp"
567 @ 5330:         END    _ICL9CEZBCPLX {lev=1 --> 0}

    51  %routine shuffle(%string(*)%name s,cparms)
568 @ 5331:         LINE   51 "regression-compile-tmp/bcpls.imp"
569 @ 5367:         DEF    SHUFFLE (_SHUFFLE) p1=V_0087 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
570 @ 5386:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
571 @ 5387:               DEF    S p1=V_0088 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
572 @ 5400:               DEF    CPARMS p1=V_0089 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
573 @ 5418:            FINISH ) {lev=1}

    52  %integer i
574 @ 5419:            LINE   52 "regression-compile-tmp/bcpls.imp"
575 @ 5455:            DEF    I p1=V_008a 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
576 @ 5468:            LINE   53 "regression-compile-tmp/bcpls.imp"
577 @ 5504:            DEF    WORK1 p1=V_008b 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
578 @ 5521:            DEF    WORK2 p1=V_008c 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  !
579 @ 5538:            LINE   54 "regression-compile-tmp/bcpls.imp"
580 @ 5574:            DEF    P p1=V_008d 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
581 @ 5587:            PUSHI  #0x00000001
582 @ 5592:            PUSHI  #0x00000004
583 @ 5597:            DIM    0001 0001

    56  %if s = "?" %then %start;               ! Handle this specially
584 @ 5603:            LINE   56 "regression-compile-tmp/bcpls.imp"
585 @ 5639:            PUSH   S
586 @ 5642:            PUSHS  "?"
587 @ 5645:            JUMPIF # L_0004

    57     cparms = ".IN,.NULL,.NULL,.NULL";    ! Never used really
588 @ 5649:            LINE   57 "regression-compile-tmp/bcpls.imp"
589 @ 5685:            PUSH   CPARMS
590 @ 5688:            PUSHS  ".IN,.NULL,.NULL,.NULL"
591 @ 5711:            ASSVAL

    58  %else
592 @ 5712:            LINE   58 "regression-compile-tmp/bcpls.imp"
593 @ 5748:            GOTO   L_0003
594 @ 5751:            LOCATE L_0004

    59     %for i = 1,1,4 %cycle
595 @ 5754:            LINE   59 "regression-compile-tmp/bcpls.imp"
596 @ 5790:            PUSH   I
597 @ 5793:            PUSHI  #0x00000001
598 @ 5798:            PUSHI  #0x00000004
599 @ 5803:            PUSHI  #0x00000001
600 @ 5808:            FOR    L_0006

    60        p(i) = "";                        ! Initialise
601 @ 5811:            LINE   60 "regression-compile-tmp/bcpls.imp"
602 @ 5847:            PUSH   P
603 @ 5850:            PUSH   I
604 @ 5853:            ACCESS
605 @ 5854:            PUSHS  ""
606 @ 5856:            ASSVAL

    61     %repeat
    62     !
607 @ 5857:            LINE   61 "regression-compile-tmp/bcpls.imp"
608 @ 5893:            REPEAT L_0006
609 @ 5896:            LOCATE L_0007

    63     s <- s.","
610 @ 5899:            LINE   63 "regression-compile-tmp/bcpls.imp"
611 @ 5935:            PUSH   S
612 @ 5938:            PUSH   S
613 @ 5941:            PUSHS  ","
614 @ 5944:            CONCAT
615 @ 5945:            JAM   

    64     %for i = 1,1,4 %cycle
616 @ 5946:            LINE   64 "regression-compile-tmp/bcpls.imp"
617 @ 5982:            PUSH   I
618 @ 5985:            PUSHI  #0x00000001
619 @ 5990:            PUSHI  #0x00000004
620 @ 5995:            PUSHI  #0x00000001
621 @ 6000:            FOR    L_0006

    65        %exit %unless s -> p(i).(",").s
622 @ 6003:            LINE   65 "regression-compile-tmp/bcpls.imp"
623 @ 6039:            PUSH   S
624 @ 6042:            PUSH   P
625 @ 6045:            PUSH   I
626 @ 6048:            ACCESS
627 @ 6049:            PUSHS  ","
628 @ 6052:            PUSH   S
629 @ 6055:            RESOLVE flags=0007
630 @ 6058:            bt     L_000a
631 @ 6061:            GOTO   L_0007
632 @ 6064:            LOCATE L_000a

    66     %repeat
    67     !
633 @ 6067:            LINE   66 "regression-compile-tmp/bcpls.imp"
634 @ 6103:            REPEAT L_0006
635 @ 6106:            LOCATE L_0007

    68     %cycle i = 1,1,4
636 @ 6109:            LINE   68 "regression-compile-tmp/bcpls.imp"
637 @ 6145:            PUSH   I
638 @ 6148:            PUSHI  #0x00000001
639 @ 6153:            PUSHI  #0x00000004
640 @ 6158:            PUSHI  #0x00000001
641 @ 6163:            FOR    L_0006

    69        %if p(i) -> work1.("=").work2 %then %start
642 @ 6166:            LINE   69 "regression-compile-tmp/bcpls.imp"
643 @ 6202:            PUSH   P
644 @ 6205:            PUSH   I
645 @ 6208:            ACCESS
646 @ 6209:            PUSH   WORK1
647 @ 6212:            PUSHS  "="
648 @ 6215:            PUSH   WORK2
649 @ 6218:            RESOLVE flags=0007
650 @ 6221:            bf     L_000a

    70           s = p(i).",".s
651 @ 6224:            LINE   70 "regression-compile-tmp/bcpls.imp"
652 @ 6260:            PUSH   S
653 @ 6263:            PUSH   P
654 @ 6266:            PUSH   I
655 @ 6269:            ACCESS
656 @ 6270:            PUSHS  ","
657 @ 6273:            CONCAT
658 @ 6274:            PUSH   S
659 @ 6277:            CONCAT
660 @ 6278:            ASSVAL

    71           p(i) = ""
661 @ 6279:            LINE   71 "regression-compile-tmp/bcpls.imp"
662 @ 6315:            PUSH   P
663 @ 6318:            PUSH   I
664 @ 6321:            ACCESS
665 @ 6322:            PUSHS  ""
666 @ 6324:            ASSVAL

    72        %finish
667 @ 6325:            LINE   72 "regression-compile-tmp/bcpls.imp"
668 @ 6361:            LOCATE L_000a

    73     %repeat
    74     !
669 @ 6364:            LINE   73 "regression-compile-tmp/bcpls.imp"
670 @ 6400:            REPEAT L_0006
671 @ 6403:            LOCATE L_0007

    75     cparms = p(1).",".p(2).",".p(3).",".p(4)
672 @ 6406:            LINE   75 "regression-compile-tmp/bcpls.imp"
673 @ 6442:            PUSH   CPARMS
674 @ 6445:            PUSH   P
675 @ 6448:            PUSHI  #0x00000001
676 @ 6453:            ACCESS
677 @ 6454:            PUSHS  ","
678 @ 6457:            CONCAT
679 @ 6458:            PUSH   P
680 @ 6461:            PUSHI  #0x00000002
681 @ 6466:            ACCESS
682 @ 6467:            CONCAT
683 @ 6468:            PUSHS  ","
684 @ 6471:            CONCAT
685 @ 6472:            PUSH   P
686 @ 6475:            PUSHI  #0x00000003
687 @ 6480:            ACCESS
688 @ 6481:            CONCAT
689 @ 6482:            PUSHS  ","
690 @ 6485:            CONCAT
691 @ 6486:            PUSH   P
692 @ 6489:            PUSHI  #0x00000004
693 @ 6494:            ACCESS
694 @ 6495:            CONCAT
695 @ 6496:            ASSVAL

    76  %finish
696 @ 6497:            LINE   76 "regression-compile-tmp/bcpls.imp"
697 @ 6533:            LOCATE L_0003

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

    86  %externalroutine bcpl(%string(255) parms)
700 @ 6573:         LINE   86 "regression-compile-tmp/bcpls.imp"
701 @ 6609:         DEF    BCPL (_BCPL) p1=V_0088 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
702 @ 6625:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
703 @ 6626:               DEF    PARMS p1=V_0089 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
704 @ 6643:            FINISH ) {lev=1}

    87  %integer flag
705 @ 6644:            LINE   87 "regression-compile-tmp/bcpls.imp"
706 @ 6680:            DEF    FLAG p1=V_008a 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  !
707 @ 6696:            LINE   88 "regression-compile-tmp/bcpls.imp"
708 @ 6732:            DEF    CPARMS p1=V_008b 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
709 @ 6750:            DEF    AUXPARMS p1=V_008c 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("")
710 @ 6770:            LINE   90 "regression-compile-tmp/bcpls.imp"
711 @ 6806:            PUSH   SETFNAME
712 @ 6809:            PUSHS  ""
713 @ 6811:            ASSPAR
714 @ 6812:            CALL  

    91  shuffle(parms,cparms)
715 @ 6813:            LINE   91 "regression-compile-tmp/bcpls.imp"
716 @ 6849:            PUSH   SHUFFLE
717 @ 6852:            PUSH   PARMS
718 @ 6855:            ASSPAR
719 @ 6856:            PUSH   CPARMS
720 @ 6859:            ASSPAR
721 @ 6860:            CALL  

    92  auxparms = parms;                       ! Make copy, to ensure string is word-aligned
722 @ 6861:            LINE   92 "regression-compile-tmp/bcpls.imp"
723 @ 6897:            PUSH   AUXPARMS
724 @ 6900:            PUSH   PARMS
725 @ 6903:            ASSVAL

    93  comreg(9) = addr(auxparms);             ! Picked up by compiler
    94  !
726 @ 6904:            LINE   93 "regression-compile-tmp/bcpls.imp"
727 @ 6940:            PUSH   COMREG
728 @ 6943:            PUSHI  #0x00000009
729 @ 6948:            ASSPAR
730 @ 6949:            CALL  
731 @ 6950:            PUSH   ADDR
732 @ 6953:            PUSH   AUXPARMS
733 @ 6956:            ASSPAR
734 @ 6957:            CALL  
735 @ 6958:            ASSVAL

    95  compile(cparms,"ICL9CEZBCPL1",flag)
736 @ 6959:            LINE   95 "regression-compile-tmp/bcpls.imp"
737 @ 6995:            PUSH   COMPILE
738 @ 6998:            PUSH   CPARMS
739 @ 7001:            ASSPAR
740 @ 7002:            PUSHS  "ICL9CEZBCPL1"
741 @ 7016:            ASSPAR
742 @ 7017:            PUSH   FLAG
743 @ 7020:            ASSPAR
744 @ 7021:            CALL  

    96  flag = return code
745 @ 7022:            LINE   96 "regression-compile-tmp/bcpls.imp"
746 @ 7058:            PUSH   FLAG
747 @ 7061:            PUSH   RETURNCODE
748 @ 7064:            CALL  
749 @ 7065:            ASSVAL

    97  flag = 0 %if flag = -1;                 ! INT:A
750 @ 7066:            LINE   97 "regression-compile-tmp/bcpls.imp"
751 @ 7102:            PUSH   FLAG
752 @ 7105:            PUSHI  #0x00000001
753 @ 7110:            NEGATE
754 @ 7111:            JUMPIF # L_0004
755 @ 7115:            PUSH   FLAG
756 @ 7118:            PUSHI  #0x00000000
757 @ 7123:            ASSVAL
758 @ 7124:            LOCATE L_0004

    98  %if 0 # flag < 1000 %then %start 
759 @ 7127:            LINE   98 "regression-compile-tmp/bcpls.imp"
760 @ 7163:            PUSHI  #0x00000000
761 @ 7168:            PUSH   FLAG
762 @ 7171:            JUMPIFD = L_0004
763 @ 7175:            PUSHI  #0x000003e8
764 @ 7180:            JUMPIF >= L_0004

    99     newline
765 @ 7184:            LINE   99 "regression-compile-tmp/bcpls.imp"
766 @ 7220:            PUSH   NEWLINE
767 @ 7223:            CALL  

   100     printstring("BCPL fails -".failuremessage(flag))
768 @ 7224:            LINE   100 "regression-compile-tmp/bcpls.imp"
769 @ 7260:            PUSH   PRINTSTRING
770 @ 7263:            PUSHS  "BCPL fails -"
771 @ 7277:            PUSH   FAILUREMESSAGE
772 @ 7280:            PUSH   FLAG
773 @ 7283:            ASSPAR
774 @ 7284:            CALL  
775 @ 7285:            CONCAT
776 @ 7286:            ASSPAR
777 @ 7287:            CALL  

   101  %finish
778 @ 7288:            LINE   101 "regression-compile-tmp/bcpls.imp"
779 @ 7324:            LOCATE L_0004

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

   111  %externalroutine bcplcgen(%string(255) parms)
782 @ 7364:         LINE   111 "regression-compile-tmp/bcpls.imp"
783 @ 7400:         DEF    BCPLCGEN (_BCPLCGEN) p1=V_0089 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
784 @ 7420:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
785 @ 7421:               DEF    PARMS p1=V_008a 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
786 @ 7438:            FINISH ) {lev=1}

   112  %integer flag
787 @ 7439:            LINE   112 "regression-compile-tmp/bcpls.imp"
788 @ 7475:            DEF    FLAG p1=V_008b 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  !
789 @ 7491:            LINE   113 "regression-compile-tmp/bcpls.imp"
790 @ 7527:            DEF    CPARMS p1=V_008c 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
791 @ 7545:            DEF    AUXPARMS p1=V_008d 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("")
792 @ 7565:            LINE   115 "regression-compile-tmp/bcpls.imp"
793 @ 7601:            PUSH   SETFNAME
794 @ 7604:            PUSHS  ""
795 @ 7606:            ASSPAR
796 @ 7607:            CALL  

   116  shuffle(parms,cparms)
797 @ 7608:            LINE   116 "regression-compile-tmp/bcpls.imp"
798 @ 7644:            PUSH   SHUFFLE
799 @ 7647:            PUSH   PARMS
800 @ 7650:            ASSPAR
801 @ 7651:            PUSH   CPARMS
802 @ 7654:            ASSPAR
803 @ 7655:            CALL  

   117  auxparms = parms;                       ! Make copy, to ensure string is word-aligned
804 @ 7656:            LINE   117 "regression-compile-tmp/bcpls.imp"
805 @ 7692:            PUSH   AUXPARMS
806 @ 7695:            PUSH   PARMS
807 @ 7698:            ASSVAL

   118  comreg(9) = addr(auxparms);             ! Picked up by codegenerator
   119  !
808 @ 7699:            LINE   118 "regression-compile-tmp/bcpls.imp"
809 @ 7735:            PUSH   COMREG
810 @ 7738:            PUSHI  #0x00000009
811 @ 7743:            ASSPAR
812 @ 7744:            CALL  
813 @ 7745:            PUSH   ADDR
814 @ 7748:            PUSH   AUXPARMS
815 @ 7751:            ASSPAR
816 @ 7752:            CALL  
817 @ 7753:            ASSVAL

   120  compile(cparms,"ICL9CEZBCPL2",flag)
818 @ 7754:            LINE   120 "regression-compile-tmp/bcpls.imp"
819 @ 7790:            PUSH   COMPILE
820 @ 7793:            PUSH   CPARMS
821 @ 7796:            ASSPAR
822 @ 7797:            PUSHS  "ICL9CEZBCPL2"
823 @ 7811:            ASSPAR
824 @ 7812:            PUSH   FLAG
825 @ 7815:            ASSPAR
826 @ 7816:            CALL  

   121  flag = return code
827 @ 7817:            LINE   121 "regression-compile-tmp/bcpls.imp"
828 @ 7853:            PUSH   FLAG
829 @ 7856:            PUSH   RETURNCODE
830 @ 7859:            CALL  
831 @ 7860:            ASSVAL

   122  flag = 0 %if flag = -1;                 ! INT:A
832 @ 7861:            LINE   122 "regression-compile-tmp/bcpls.imp"
833 @ 7897:            PUSH   FLAG
834 @ 7900:            PUSHI  #0x00000001
835 @ 7905:            NEGATE
836 @ 7906:            JUMPIF # L_0004
837 @ 7910:            PUSH   FLAG
838 @ 7913:            PUSHI  #0x00000000
839 @ 7918:            ASSVAL
840 @ 7919:            LOCATE L_0004

   123  %if 0 # flag < 1000 %then %start
841 @ 7922:            LINE   123 "regression-compile-tmp/bcpls.imp"
842 @ 7958:            PUSHI  #0x00000000
843 @ 7963:            PUSH   FLAG
844 @ 7966:            JUMPIFD = L_0004
845 @ 7970:            PUSHI  #0x000003e8
846 @ 7975:            JUMPIF >= L_0004

   124     newline
847 @ 7979:            LINE   124 "regression-compile-tmp/bcpls.imp"
848 @ 8015:            PUSH   NEWLINE
849 @ 8018:            CALL  

   125     printstring("BCPLCGEN fails -".failuremessage(flag))
850 @ 8019:            LINE   125 "regression-compile-tmp/bcpls.imp"
851 @ 8055:            PUSH   PRINTSTRING
852 @ 8058:            PUSHS  "BCPLCGEN fails -"
853 @ 8076:            PUSH   FAILUREMESSAGE
854 @ 8079:            PUSH   FLAG
855 @ 8082:            ASSPAR
856 @ 8083:            CALL  
857 @ 8084:            CONCAT
858 @ 8085:            ASSPAR
859 @ 8086:            CALL  

   126  %finish
860 @ 8087:            LINE   126 "regression-compile-tmp/bcpls.imp"
861 @ 8123:            LOCATE L_0004

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

   136  %externalroutine bcplv(%string(255) parms)
864 @ 8163:         LINE   136 "regression-compile-tmp/bcpls.imp"
865 @ 8199:         DEF    BCPLV (_BCPLV) p1=V_008a 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
866 @ 8216:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
867 @ 8217:               DEF    PARMS p1=V_008b 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
868 @ 8234:            FINISH ) {lev=1}

   137  %integer flag
869 @ 8235:            LINE   137 "regression-compile-tmp/bcpls.imp"
870 @ 8271:            DEF    FLAG p1=V_008c 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  !
871 @ 8287:            LINE   138 "regression-compile-tmp/bcpls.imp"
872 @ 8323:            DEF    CPARMS p1=V_008d 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
873 @ 8341:            DEF    AUXPARMS p1=V_008e 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("")
874 @ 8361:            LINE   140 "regression-compile-tmp/bcpls.imp"
875 @ 8397:            PUSH   SETFNAME
876 @ 8400:            PUSHS  ""
877 @ 8402:            ASSPAR
878 @ 8403:            CALL  

   141  shuffle(parms,cparms)
879 @ 8404:            LINE   141 "regression-compile-tmp/bcpls.imp"
880 @ 8440:            PUSH   SHUFFLE
881 @ 8443:            PUSH   PARMS
882 @ 8446:            ASSPAR
883 @ 8447:            PUSH   CPARMS
884 @ 8450:            ASSPAR
885 @ 8451:            CALL  

   142  auxparms = parms;                       ! Make copy, to ensure string is word-aligned
886 @ 8452:            LINE   142 "regression-compile-tmp/bcpls.imp"
887 @ 8488:            PUSH   AUXPARMS
888 @ 8491:            PUSH   PARMS
889 @ 8494:            ASSVAL

   143  comreg(9) = addr(auxparms);             ! Picked up by codegenerator
   144  !
890 @ 8495:            LINE   143 "regression-compile-tmp/bcpls.imp"
891 @ 8531:            PUSH   COMREG
892 @ 8534:            PUSHI  #0x00000009
893 @ 8539:            ASSPAR
894 @ 8540:            CALL  
895 @ 8541:            PUSH   ADDR
896 @ 8544:            PUSH   AUXPARMS
897 @ 8547:            ASSPAR
898 @ 8548:            CALL  
899 @ 8549:            ASSVAL

   145  compile(cparms,"ICL9CEZBCPLV",flag)
900 @ 8550:            LINE   145 "regression-compile-tmp/bcpls.imp"
901 @ 8586:            PUSH   COMPILE
902 @ 8589:            PUSH   CPARMS
903 @ 8592:            ASSPAR
904 @ 8593:            PUSHS  "ICL9CEZBCPLV"
905 @ 8607:            ASSPAR
906 @ 8608:            PUSH   FLAG
907 @ 8611:            ASSPAR
908 @ 8612:            CALL  

   146  flag = return code
909 @ 8613:            LINE   146 "regression-compile-tmp/bcpls.imp"
910 @ 8649:            PUSH   FLAG
911 @ 8652:            PUSH   RETURNCODE
912 @ 8655:            CALL  
913 @ 8656:            ASSVAL

   147  flag = 0 %if flag = -1;                 ! INT:A
914 @ 8657:            LINE   147 "regression-compile-tmp/bcpls.imp"
915 @ 8693:            PUSH   FLAG
916 @ 8696:            PUSHI  #0x00000001
917 @ 8701:            NEGATE
918 @ 8702:            JUMPIF # L_0004
919 @ 8706:            PUSH   FLAG
920 @ 8709:            PUSHI  #0x00000000
921 @ 8714:            ASSVAL
922 @ 8715:            LOCATE L_0004

   148  %if 0 # flag < 1000 %then %start
923 @ 8718:            LINE   148 "regression-compile-tmp/bcpls.imp"
924 @ 8754:            PUSHI  #0x00000000
925 @ 8759:            PUSH   FLAG
926 @ 8762:            JUMPIFD = L_0004
927 @ 8766:            PUSHI  #0x000003e8
928 @ 8771:            JUMPIF >= L_0004

   149     newline
929 @ 8775:            LINE   149 "regression-compile-tmp/bcpls.imp"
930 @ 8811:            PUSH   NEWLINE
931 @ 8814:            CALL  

   150     printstring("BCPLV fails -".failuremessage(flag))
932 @ 8815:            LINE   150 "regression-compile-tmp/bcpls.imp"
933 @ 8851:            PUSH   PRINTSTRING
934 @ 8854:            PUSHS  "BCPLV fails -"
935 @ 8869:            PUSH   FAILUREMESSAGE
936 @ 8872:            PUSH   FLAG
937 @ 8875:            ASSPAR
938 @ 8876:            CALL  
939 @ 8877:            CONCAT
940 @ 8878:            ASSPAR
941 @ 8879:            CALL  

   151  %finish
942 @ 8880:            LINE   151 "regression-compile-tmp/bcpls.imp"
943 @ 8916:            LOCATE L_0004

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

   161  %externalroutine bcplw(%string(255) parms)
946 @ 8956:         LINE   161 "regression-compile-tmp/bcpls.imp"
947 @ 8992:         DEF    BCPLW (_BCPLW) p1=V_008b 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
948 @ 9009:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
949 @ 9010:               DEF    PARMS p1=V_008c 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
950 @ 9027:            FINISH ) {lev=1}

   162  %integer flag
951 @ 9028:            LINE   162 "regression-compile-tmp/bcpls.imp"
952 @ 9064:            DEF    FLAG p1=V_008d 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  !
953 @ 9080:            LINE   163 "regression-compile-tmp/bcpls.imp"
954 @ 9116:            DEF    CPARMS p1=V_008e 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
955 @ 9134:            DEF    AUXPARMS p1=V_008f 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("")
956 @ 9154:            LINE   165 "regression-compile-tmp/bcpls.imp"
957 @ 9190:            PUSH   SETFNAME
958 @ 9193:            PUSHS  ""
959 @ 9195:            ASSPAR
960 @ 9196:            CALL  

   166  shuffle(parms,cparms)
961 @ 9197:            LINE   166 "regression-compile-tmp/bcpls.imp"
962 @ 9233:            PUSH   SHUFFLE
963 @ 9236:            PUSH   PARMS
964 @ 9239:            ASSPAR
965 @ 9240:            PUSH   CPARMS
966 @ 9243:            ASSPAR
967 @ 9244:            CALL  

   167  auxparms = parms;                       ! Make copy, to ensure string is word-aligned
968 @ 9245:            LINE   167 "regression-compile-tmp/bcpls.imp"
969 @ 9281:            PUSH   AUXPARMS
970 @ 9284:            PUSH   PARMS
971 @ 9287:            ASSVAL

   168  comreg(9) = addr(auxparms);             ! Picked up by codegenerator
   169  !
972 @ 9288:            LINE   168 "regression-compile-tmp/bcpls.imp"
973 @ 9324:            PUSH   COMREG
974 @ 9327:            PUSHI  #0x00000009
975 @ 9332:            ASSPAR
976 @ 9333:            CALL  
977 @ 9334:            PUSH   ADDR
978 @ 9337:            PUSH   AUXPARMS
979 @ 9340:            ASSPAR
980 @ 9341:            CALL  
981 @ 9342:            ASSVAL

   170  compile(cparms,"ICL9CEZBCPLW",flag)
982 @ 9343:            LINE   170 "regression-compile-tmp/bcpls.imp"
983 @ 9379:            PUSH   COMPILE
984 @ 9382:            PUSH   CPARMS
985 @ 9385:            ASSPAR
986 @ 9386:            PUSHS  "ICL9CEZBCPLW"
987 @ 9400:            ASSPAR
988 @ 9401:            PUSH   FLAG
989 @ 9404:            ASSPAR
990 @ 9405:            CALL  

   171  flag = return code
991 @ 9406:            LINE   171 "regression-compile-tmp/bcpls.imp"
992 @ 9442:            PUSH   FLAG
993 @ 9445:            PUSH   RETURNCODE
994 @ 9448:            CALL  
995 @ 9449:            ASSVAL

   172  flag = 0 %if flag = -1;                 ! INT:A
996 @ 9450:            LINE   172 "regression-compile-tmp/bcpls.imp"
997 @ 9486:            PUSH   FLAG
998 @ 9489:            PUSHI  #0x00000001
999 @ 9494:            NEGATE
1000 @ 9495:            JUMPIF # L_0004
1001 @ 9499:            PUSH   FLAG
1002 @ 9502:            PUSHI  #0x00000000
1003 @ 9507:            ASSVAL
1004 @ 9508:            LOCATE L_0004

   173  %if 0 # flag < 1000 %then %start
1005 @ 9511:            LINE   173 "regression-compile-tmp/bcpls.imp"
1006 @ 9547:            PUSHI  #0x00000000
1007 @ 9552:            PUSH   FLAG
1008 @ 9555:            JUMPIFD = L_0004
1009 @ 9559:            PUSHI  #0x000003e8
1010 @ 9564:            JUMPIF >= L_0004

   174     newline
1011 @ 9568:            LINE   174 "regression-compile-tmp/bcpls.imp"
1012 @ 9604:            PUSH   NEWLINE
1013 @ 9607:            CALL  

   175     printstring("BCPLW fails -".failuremessage(flag))
1014 @ 9608:            LINE   175 "regression-compile-tmp/bcpls.imp"
1015 @ 9644:            PUSH   PRINTSTRING
1016 @ 9647:            PUSHS  "BCPLW fails -"
1017 @ 9662:            PUSH   FAILUREMESSAGE
1018 @ 9665:            PUSH   FLAG
1019 @ 9668:            ASSPAR
1020 @ 9669:            CALL  
1021 @ 9670:            CONCAT
1022 @ 9671:            ASSPAR
1023 @ 9672:            CALL  

   176  %finish
1024 @ 9673:            LINE   176 "regression-compile-tmp/bcpls.imp"
1025 @ 9709:            LOCATE L_0004

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

   186  %externalroutine bcplz(%string(255) parms)
1028 @ 9749:         LINE   186 "regression-compile-tmp/bcpls.imp"
1029 @ 9785:         DEF    BCPLZ (_BCPLZ) p1=V_008c 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
1030 @ 9802:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
1031 @ 9803:               DEF    PARMS p1=V_008d 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
1032 @ 9820:            FINISH ) {lev=1}

   187  %integer flag
1033 @ 9821:            LINE   187 "regression-compile-tmp/bcpls.imp"
1034 @ 9857:            DEF    FLAG p1=V_008e 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  !
1035 @ 9873:            LINE   188 "regression-compile-tmp/bcpls.imp"
1036 @ 9909:            DEF    CPARMS p1=V_008f 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
1037 @ 9927:            DEF    AUXPARMS p1=V_0090 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("")
1038 @ 9947:            LINE   190 "regression-compile-tmp/bcpls.imp"
1039 @ 9983:            PUSH   SETFNAME
1040 @ 9986:            PUSHS  ""
1041 @ 9988:            ASSPAR
1042 @ 9989:            CALL  

   191  shuffle(parms,cparms)
1043 @ 9990:            LINE   191 "regression-compile-tmp/bcpls.imp"
1044 @ 10026:            PUSH   SHUFFLE
1045 @ 10029:            PUSH   PARMS
1046 @ 10032:            ASSPAR
1047 @ 10033:            PUSH   CPARMS
1048 @ 10036:            ASSPAR
1049 @ 10037:            CALL  

   192  auxparms = parms;                       ! Make copy, to ensure string is word-aligned
1050 @ 10038:            LINE   192 "regression-compile-tmp/bcpls.imp"
1051 @ 10074:            PUSH   AUXPARMS
1052 @ 10077:            PUSH   PARMS
1053 @ 10080:            ASSVAL

   193  comreg(9) = addr(auxparms);             ! Picked up by codegenerator
   194  !
1054 @ 10081:            LINE   193 "regression-compile-tmp/bcpls.imp"
1055 @ 10117:            PUSH   COMREG
1056 @ 10120:            PUSHI  #0x00000009
1057 @ 10125:            ASSPAR
1058 @ 10126:            CALL  
1059 @ 10127:            PUSH   ADDR
1060 @ 10130:            PUSH   AUXPARMS
1061 @ 10133:            ASSPAR
1062 @ 10134:            CALL  
1063 @ 10135:            ASSVAL

   195  compile(cparms,"ICL9CEZBCPLZ",flag)
1064 @ 10136:            LINE   195 "regression-compile-tmp/bcpls.imp"
1065 @ 10172:            PUSH   COMPILE
1066 @ 10175:            PUSH   CPARMS
1067 @ 10178:            ASSPAR
1068 @ 10179:            PUSHS  "ICL9CEZBCPLZ"
1069 @ 10193:            ASSPAR
1070 @ 10194:            PUSH   FLAG
1071 @ 10197:            ASSPAR
1072 @ 10198:            CALL  

   196  flag = return code
1073 @ 10199:            LINE   196 "regression-compile-tmp/bcpls.imp"
1074 @ 10235:            PUSH   FLAG
1075 @ 10238:            PUSH   RETURNCODE
1076 @ 10241:            CALL  
1077 @ 10242:            ASSVAL

   197  flag = 0 %if flag = -1;                 ! INT:A
1078 @ 10243:            LINE   197 "regression-compile-tmp/bcpls.imp"
1079 @ 10279:            PUSH   FLAG
1080 @ 10282:            PUSHI  #0x00000001
1081 @ 10287:            NEGATE
1082 @ 10288:            JUMPIF # L_0004
1083 @ 10292:            PUSH   FLAG
1084 @ 10295:            PUSHI  #0x00000000
1085 @ 10300:            ASSVAL
1086 @ 10301:            LOCATE L_0004

   198  %if 0 # flag < 1000 %then %start
1087 @ 10304:            LINE   198 "regression-compile-tmp/bcpls.imp"
1088 @ 10340:            PUSHI  #0x00000000
1089 @ 10345:            PUSH   FLAG
1090 @ 10348:            JUMPIFD = L_0004
1091 @ 10352:            PUSHI  #0x000003e8
1092 @ 10357:            JUMPIF >= L_0004

   199     newline
1093 @ 10361:            LINE   199 "regression-compile-tmp/bcpls.imp"
1094 @ 10397:            PUSH   NEWLINE
1095 @ 10400:            CALL  

   200     printstring("BCPLZ fails -".failuremessage(flag))
1096 @ 10401:            LINE   200 "regression-compile-tmp/bcpls.imp"
1097 @ 10437:            PUSH   PRINTSTRING
1098 @ 10440:            PUSHS  "BCPLZ fails -"
1099 @ 10455:            PUSH   FAILUREMESSAGE
1100 @ 10458:            PUSH   FLAG
1101 @ 10461:            ASSPAR
1102 @ 10462:            CALL  
1103 @ 10463:            CONCAT
1104 @ 10464:            ASSPAR
1105 @ 10465:            CALL  

   201  %finish
1106 @ 10466:            LINE   201 "regression-compile-tmp/bcpls.imp"
1107 @ 10502:            LOCATE L_0004

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

   211  %externalroutine bcplr(%string(255) parms)
1110 @ 10542:         LINE   211 "regression-compile-tmp/bcpls.imp"
1111 @ 10578:         DEF    BCPLR (_BCPLR) p1=V_008d 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
1112 @ 10595:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
1113 @ 10596:               DEF    PARMS p1=V_008e 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
1114 @ 10613:            FINISH ) {lev=1}

   212  %integer flag
1115 @ 10614:            LINE   212 "regression-compile-tmp/bcpls.imp"
1116 @ 10650:            DEF    FLAG p1=V_008f 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  !
1117 @ 10666:            LINE   213 "regression-compile-tmp/bcpls.imp"
1118 @ 10702:            DEF    CPARMS p1=V_0090 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
1119 @ 10720:            DEF    AUXPARMS p1=V_0091 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("")
1120 @ 10740:            LINE   215 "regression-compile-tmp/bcpls.imp"
1121 @ 10776:            PUSH   SETFNAME
1122 @ 10779:            PUSHS  ""
1123 @ 10781:            ASSPAR
1124 @ 10782:            CALL  

   216  shuffle(parms,cparms)
1125 @ 10783:            LINE   216 "regression-compile-tmp/bcpls.imp"
1126 @ 10819:            PUSH   SHUFFLE
1127 @ 10822:            PUSH   PARMS
1128 @ 10825:            ASSPAR
1129 @ 10826:            PUSH   CPARMS
1130 @ 10829:            ASSPAR
1131 @ 10830:            CALL  

   217  auxparms = parms;                       ! Make copy, to ensure string is word-aligned
1132 @ 10831:            LINE   217 "regression-compile-tmp/bcpls.imp"
1133 @ 10867:            PUSH   AUXPARMS
1134 @ 10870:            PUSH   PARMS
1135 @ 10873:            ASSVAL

   218  comreg(9) = addr(auxparms);             ! Picked up by codegenerator
   219  !
1136 @ 10874:            LINE   218 "regression-compile-tmp/bcpls.imp"
1137 @ 10910:            PUSH   COMREG
1138 @ 10913:            PUSHI  #0x00000009
1139 @ 10918:            ASSPAR
1140 @ 10919:            CALL  
1141 @ 10920:            PUSH   ADDR
1142 @ 10923:            PUSH   AUXPARMS
1143 @ 10926:            ASSPAR
1144 @ 10927:            CALL  
1145 @ 10928:            ASSVAL

   220  compile(cparms,"ICL9CEZBCPLR",flag)
1146 @ 10929:            LINE   220 "regression-compile-tmp/bcpls.imp"
1147 @ 10965:            PUSH   COMPILE
1148 @ 10968:            PUSH   CPARMS
1149 @ 10971:            ASSPAR
1150 @ 10972:            PUSHS  "ICL9CEZBCPLR"
1151 @ 10986:            ASSPAR
1152 @ 10987:            PUSH   FLAG
1153 @ 10990:            ASSPAR
1154 @ 10991:            CALL  

   221  flag = return code
1155 @ 10992:            LINE   221 "regression-compile-tmp/bcpls.imp"
1156 @ 11028:            PUSH   FLAG
1157 @ 11031:            PUSH   RETURNCODE
1158 @ 11034:            CALL  
1159 @ 11035:            ASSVAL

   222  flag = 0 %if flag = -1;                 ! INT:A
1160 @ 11036:            LINE   222 "regression-compile-tmp/bcpls.imp"
1161 @ 11072:            PUSH   FLAG
1162 @ 11075:            PUSHI  #0x00000001
1163 @ 11080:            NEGATE
1164 @ 11081:            JUMPIF # L_0004
1165 @ 11085:            PUSH   FLAG
1166 @ 11088:            PUSHI  #0x00000000
1167 @ 11093:            ASSVAL
1168 @ 11094:            LOCATE L_0004

   223  %if 0 # flag < 1000 %then %start
1169 @ 11097:            LINE   223 "regression-compile-tmp/bcpls.imp"
1170 @ 11133:            PUSHI  #0x00000000
1171 @ 11138:            PUSH   FLAG
1172 @ 11141:            JUMPIFD = L_0004
1173 @ 11145:            PUSHI  #0x000003e8
1174 @ 11150:            JUMPIF >= L_0004

   224     newline
1175 @ 11154:            LINE   224 "regression-compile-tmp/bcpls.imp"
1176 @ 11190:            PUSH   NEWLINE
1177 @ 11193:            CALL  

   225     printstring("BCPLR fails -".failuremessage(flag))
1178 @ 11194:            LINE   225 "regression-compile-tmp/bcpls.imp"
1179 @ 11230:            PUSH   PRINTSTRING
1180 @ 11233:            PUSHS  "BCPLR fails -"
1181 @ 11248:            PUSH   FAILUREMESSAGE
1182 @ 11251:            PUSH   FLAG
1183 @ 11254:            ASSPAR
1184 @ 11255:            CALL  
1185 @ 11256:            CONCAT
1186 @ 11257:            ASSPAR
1187 @ 11258:            CALL  

   226  %finish
1188 @ 11259:            LINE   226 "regression-compile-tmp/bcpls.imp"
1189 @ 11295:            LOCATE L_0004

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

   236  %externalroutine bcplq(%string(255) parms)
1192 @ 11335:         LINE   236 "regression-compile-tmp/bcpls.imp"
1193 @ 11371:         DEF    BCPLQ (_BCPLQ) p1=V_008e 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
1194 @ 11388:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
1195 @ 11389:               DEF    PARMS p1=V_008f 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
1196 @ 11406:            FINISH ) {lev=1}

   237  %integer flag
1197 @ 11407:            LINE   237 "regression-compile-tmp/bcpls.imp"
1198 @ 11443:            DEF    FLAG p1=V_0090 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  !
1199 @ 11459:            LINE   238 "regression-compile-tmp/bcpls.imp"
1200 @ 11495:            DEF    CPARMS p1=V_0091 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
1201 @ 11513:            DEF    AUXPARMS p1=V_0092 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("")
1202 @ 11533:            LINE   240 "regression-compile-tmp/bcpls.imp"
1203 @ 11569:            PUSH   SETFNAME
1204 @ 11572:            PUSHS  ""
1205 @ 11574:            ASSPAR
1206 @ 11575:            CALL  

   241  shuffle(parms,cparms)
1207 @ 11576:            LINE   241 "regression-compile-tmp/bcpls.imp"
1208 @ 11612:            PUSH   SHUFFLE
1209 @ 11615:            PUSH   PARMS
1210 @ 11618:            ASSPAR
1211 @ 11619:            PUSH   CPARMS
1212 @ 11622:            ASSPAR
1213 @ 11623:            CALL  

   242  auxparms = parms;                       ! Make copy, to ensure string is word-aligned
1214 @ 11624:            LINE   242 "regression-compile-tmp/bcpls.imp"
1215 @ 11660:            PUSH   AUXPARMS
1216 @ 11663:            PUSH   PARMS
1217 @ 11666:            ASSVAL

   243  comreg(9) = addr(auxparms);             ! Picked up by codegenerator
   244  !
1218 @ 11667:            LINE   243 "regression-compile-tmp/bcpls.imp"
1219 @ 11703:            PUSH   COMREG
1220 @ 11706:            PUSHI  #0x00000009
1221 @ 11711:            ASSPAR
1222 @ 11712:            CALL  
1223 @ 11713:            PUSH   ADDR
1224 @ 11716:            PUSH   AUXPARMS
1225 @ 11719:            ASSPAR
1226 @ 11720:            CALL  
1227 @ 11721:            ASSVAL

   245  compile(cparms,"ICL9CEZBCPLQ",flag)
1228 @ 11722:            LINE   245 "regression-compile-tmp/bcpls.imp"
1229 @ 11758:            PUSH   COMPILE
1230 @ 11761:            PUSH   CPARMS
1231 @ 11764:            ASSPAR
1232 @ 11765:            PUSHS  "ICL9CEZBCPLQ"
1233 @ 11779:            ASSPAR
1234 @ 11780:            PUSH   FLAG
1235 @ 11783:            ASSPAR
1236 @ 11784:            CALL  

   246  flag = return code
1237 @ 11785:            LINE   246 "regression-compile-tmp/bcpls.imp"
1238 @ 11821:            PUSH   FLAG
1239 @ 11824:            PUSH   RETURNCODE
1240 @ 11827:            CALL  
1241 @ 11828:            ASSVAL

   247  flag = 0 %if flag = -1;                 ! INT:A
1242 @ 11829:            LINE   247 "regression-compile-tmp/bcpls.imp"
1243 @ 11865:            PUSH   FLAG
1244 @ 11868:            PUSHI  #0x00000001
1245 @ 11873:            NEGATE
1246 @ 11874:            JUMPIF # L_0004
1247 @ 11878:            PUSH   FLAG
1248 @ 11881:            PUSHI  #0x00000000
1249 @ 11886:            ASSVAL
1250 @ 11887:            LOCATE L_0004

   248  %if 0 # flag < 1000 %then %start
1251 @ 11890:            LINE   248 "regression-compile-tmp/bcpls.imp"
1252 @ 11926:            PUSHI  #0x00000000
1253 @ 11931:            PUSH   FLAG
1254 @ 11934:            JUMPIFD = L_0004
1255 @ 11938:            PUSHI  #0x000003e8
1256 @ 11943:            JUMPIF >= L_0004

   249     newline
1257 @ 11947:            LINE   249 "regression-compile-tmp/bcpls.imp"
1258 @ 11983:            PUSH   NEWLINE
1259 @ 11986:            CALL  

   250     printstring("BCPLQ fails -".failuremessage(flag))
1260 @ 11987:            LINE   250 "regression-compile-tmp/bcpls.imp"
1261 @ 12023:            PUSH   PRINTSTRING
1262 @ 12026:            PUSHS  "BCPLQ fails -"
1263 @ 12041:            PUSH   FAILUREMESSAGE
1264 @ 12044:            PUSH   FLAG
1265 @ 12047:            ASSPAR
1266 @ 12048:            CALL  
1267 @ 12049:            CONCAT
1268 @ 12050:            ASSPAR
1269 @ 12051:            CALL  

   251  %finish
1270 @ 12052:            LINE   251 "regression-compile-tmp/bcpls.imp"
1271 @ 12088:            LOCATE L_0004

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

   261  %externalroutine bcplxref(%string(255) parms)
1274 @ 12128:         LINE   261 "regression-compile-tmp/bcpls.imp"
1275 @ 12164:         DEF    BCPLXREF (_BCPLXREF) p1=V_008f 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
1276 @ 12184:            START  ( FORMAL PARAMETERS  {lev=1 --> 2, nested=0 --> 1}
1277 @ 12185:               DEF    PARMS p1=V_0090 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
1278 @ 12202:            FINISH ) {lev=1}

   262  %integer flag
   263  !
1279 @ 12203:            LINE   262 "regression-compile-tmp/bcpls.imp"
1280 @ 12239:            DEF    FLAG 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

   264  setfname("")
1281 @ 12255:            LINE   264 "regression-compile-tmp/bcpls.imp"
1282 @ 12291:            PUSH   SETFNAME
1283 @ 12294:            PUSHS  ""
1284 @ 12296:            ASSPAR
1285 @ 12297:            CALL  

   265  flag = icl9cezbcplx(parms)
1286 @ 12298:            LINE   265 "regression-compile-tmp/bcpls.imp"
1287 @ 12334:            PUSH   FLAG
1288 @ 12337:            PUSH   ICL9CEZBCPLX
1289 @ 12340:            PUSH   PARMS
1290 @ 12343:            ASSPAR
1291 @ 12344:            CALL  
1292 @ 12345:            ASSVAL

   266  flag = 0 %if flag = -1;                 ! INT:A
1293 @ 12346:            LINE   266 "regression-compile-tmp/bcpls.imp"
1294 @ 12382:            PUSH   FLAG
1295 @ 12385:            PUSHI  #0x00000001
1296 @ 12390:            NEGATE
1297 @ 12391:            JUMPIF # L_0004
1298 @ 12395:            PUSH   FLAG
1299 @ 12398:            PUSHI  #0x00000000
1300 @ 12403:            ASSVAL
1301 @ 12404:            LOCATE L_0004

   267  %if 0 # flag < 1000 %then %start
1302 @ 12407:            LINE   267 "regression-compile-tmp/bcpls.imp"
1303 @ 12443:            PUSHI  #0x00000000
1304 @ 12448:            PUSH   FLAG
1305 @ 12451:            JUMPIFD = L_0004
1306 @ 12455:            PUSHI  #0x000003e8
1307 @ 12460:            JUMPIF >= L_0004

   268     newline
1308 @ 12464:            LINE   268 "regression-compile-tmp/bcpls.imp"
1309 @ 12500:            PUSH   NEWLINE
1310 @ 12503:            CALL  

   269     printstring("BCPLXREF fails -".failuremessage(flag))
1311 @ 12504:            LINE   269 "regression-compile-tmp/bcpls.imp"
1312 @ 12540:            PUSH   PRINTSTRING
1313 @ 12543:            PUSHS  "BCPLXREF fails -"
1314 @ 12561:            PUSH   FAILUREMESSAGE
1315 @ 12564:            PUSH   FLAG
1316 @ 12567:            ASSPAR
1317 @ 12568:            CALL  
1318 @ 12569:            CONCAT
1319 @ 12570:            ASSPAR
1320 @ 12571:            CALL  

   270  %finish
1321 @ 12572:            LINE   270 "regression-compile-tmp/bcpls.imp"
1322 @ 12608:            LOCATE L_0004

   271  %end;   ! of bcplxref
   272  
1323 @ 12611:            LINE   271 "regression-compile-tmp/bcpls.imp"
1324 @ 12647:         END    _BCPLXREF {lev=1 --> 0}

   273  %begin
1325 @ 12648:         LINE   273 "regression-compile-tmp/bcpls.imp"
1326 @ 12684:         BEGIN  _lev0id0 {lev=0 --> 1}

   274    bcpl("")
1327 @ 12685:            LINE   274 "regression-compile-tmp/bcpls.imp"
1328 @ 12721:            PUSH   BCPL
1329 @ 12724:            PUSHS  ""
1330 @ 12726:            ASSPAR
1331 @ 12727:            CALL  

   275  %end
   276  
1332 @ 12728:            LINE   275 "regression-compile-tmp/bcpls.imp"
1333 @ 12764:         END    _lev0id0 {lev=1 --> 0}

   277  %endoffile
1334 @ 12765:         LINE   277 "regression-compile-tmp/bcpls.imp"
1335 @ 12801:         END     {lev=0 --> -1}
1336 @ 12802: 

