
     1  %CONTROL X'10000000' ; ! Decode
503 @ 4405:         LINE   1 "regression-run-tmp/ack.imp"
504 @ 4435:         CONTROL 0000

     2  %BEGIN
505 @ 4438:         LINE   2 "regression-run-tmp/ack.imp"
506 @ 4468:         BEGIN  _lev0id0 {lev=0 --> 1}

     3    %INTEGERFN ACKERMANN(%INTEGER M, N)
     4  
507 @ 4469:            LINE   3 "regression-run-tmp/ack.imp"
508 @ 4499:            DEF    ACKERMANN (_lev0id0_ACKERMANN) p1=V_0081 a/tf=18 b/format=1 c/ostate=10  type=1 (integer) form=8 (function) special=0 (<special:0>) linkage=0 (auto) spec=0 indirect=1 unass=0
509 @ 4520:               START  ( FORMAL PARAMETERS  {lev=2 --> 3, nested=0 --> 1}
510 @ 4521:                  DEF    M p1=V_0082 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
511 @ 4534:                  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
512 @ 4547:               FINISH ) {lev=2}

     5     %RESULT = N+1 %IF M = 0
     6  
513 @ 4548:               LINE   5 "regression-run-tmp/ack.imp"
514 @ 4578:               PUSH   M
515 @ 4581:               PUSHI  #0x00000000
516 @ 4586:               JUMPIF # L_0004
517 @ 4590:               PUSH   N
518 @ 4593:               PUSHI  #0x00000001
519 @ 4598:               ADD   
520 @ 4599:               RESULT
521 @ 4600:               LOCATE L_0004

     7     %RESULT = ACKERMANN(M-1, 1) %IF N = 0
     8  
522 @ 4603:               LINE   7 "regression-run-tmp/ack.imp"
523 @ 4633:               PUSH   N
524 @ 4636:               PUSHI  #0x00000000
525 @ 4641:               JUMPIF # L_0004
526 @ 4645:               PUSH   ACKERMANN
527 @ 4648:               PUSH   M
528 @ 4651:               PUSHI  #0x00000001
529 @ 4656:               SUB   
530 @ 4657:               ASSPAR
531 @ 4658:               PUSHI  #0x00000001
532 @ 4663:               ASSPAR
533 @ 4664:               CALL  
534 @ 4665:               RESULT
535 @ 4666:               LOCATE L_0004

     9     %RESULT = ACKERMANN(M-1, ACKERMANN(M, N-1))
    10  
536 @ 4669:               LINE   9 "regression-run-tmp/ack.imp"
537 @ 4699:               PUSH   ACKERMANN
538 @ 4702:               PUSH   M
539 @ 4705:               PUSHI  #0x00000001
540 @ 4710:               SUB   
541 @ 4711:               ASSPAR
542 @ 4712:               PUSH   ACKERMANN
543 @ 4715:               PUSH   M
544 @ 4718:               ASSPAR
545 @ 4719:               PUSH   N
546 @ 4722:               PUSHI  #0x00000001
547 @ 4727:               SUB   
548 @ 4728:               ASSPAR
549 @ 4729:               CALL  
550 @ 4730:               ASSPAR
551 @ 4731:               CALL  
552 @ 4732:               RESULT

    11    %END
    12  
553 @ 4733:               LINE   11 "regression-run-tmp/ack.imp"
554 @ 4763:            END    _lev0id0_ACKERMANN {lev=2 --> 1}

    13    %INTEGER I
    14  
555 @ 4764:            LINE   13 "regression-run-tmp/ack.imp"
556 @ 4794:            DEF    I p1=V_0082 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

    15    I = ACKERMANN(3,4)
557 @ 4807:            LINE   15 "regression-run-tmp/ack.imp"
558 @ 4837:            PUSH   I
559 @ 4840:            PUSH   ACKERMANN
560 @ 4843:            PUSHI  #0x00000003
561 @ 4848:            ASSPAR
562 @ 4849:            PUSHI  #0x00000004
563 @ 4854:            ASSPAR
564 @ 4855:            CALL  
565 @ 4856:            ASSVAL

    16    PRINT STRING("ACKERMANN(3,4) = ")
566 @ 4857:            LINE   16 "regression-run-tmp/ack.imp"
567 @ 4887:            PUSH   PRINTSTRING
568 @ 4890:            PUSHS  "ACKERMANN(3,4) = "
569 @ 4909:            ASSPAR
570 @ 4910:            CALL  

    17    WRITE(I, -1)
571 @ 4911:            LINE   17 "regression-run-tmp/ack.imp"
572 @ 4941:            PUSH   WRITE
573 @ 4944:            PUSH   I
574 @ 4947:            ASSPAR
575 @ 4948:            PUSHI  #0x00000001
576 @ 4953:            NEGATE
577 @ 4954:            ASSPAR
578 @ 4955:            CALL  

    18    NEWLINE
    19    
579 @ 4956:            LINE   18 "regression-run-tmp/ack.imp"
580 @ 4986:            PUSH   NEWLINE
581 @ 4989:            CALL  

    20  %ENDOFPROGRAM
582 @ 4990:            LINE   20 "regression-run-tmp/ack.imp"
583 @ 5020:         END    _lev0id0 {lev=1 --> 0}
584 @ 5021:         END     {lev=0 --> -1}
585 @ 5022: 

