home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / source / fort / f3 / f33.s < prev    next >
Encoding:
Text File  |  1975-07-17  |  1.6 KB  |  144 lines

  1. /
  2. /
  3.  
  4. / f33 -- do, etal
  5.  
  6. .globl    sdo
  7. .globl    dobeg
  8. .globl    doend
  9.  
  10. .globl    getlab
  11. .globl    e2
  12. .globl    error
  13. .globl    lvalue
  14. .globl    rvalue
  15. .globl    code
  16. .globl    convrt
  17. .globl    dou
  18. .globl    dotabp
  19. .globl    edotab
  20. .globl    dotab
  21.  
  22. sdo:
  23.     jsr    r5,getlab
  24.         br 9f
  25.     jsr    r5,dobeg
  26.     cmp    r0,$40.
  27.     bne    9f
  28.     rts    r5
  29.  
  30. 7:
  31.     tst    (sp)+
  32. 8:
  33.     tst    (sp)+
  34. 9:
  35.     jsr    r5,error; 42.
  36.     rts    r5
  37.  
  38. dobeg:
  39.     mov    dotabp,r2
  40.     cmp    r2,$edotab
  41.     blo    1f
  42.     jsr    r5,error; 44.
  43.     rts    r5
  44. 1:
  45.     mov    dou,dotab(r2)
  46.     inc    dou
  47.     mov    r0,dotab+2(r2)
  48.     add    $4,dotabp
  49.     jsr    r5,e2
  50.     cmp    r0,$38.        / =
  51.     bne    9b
  52.     mov    r2,-(sp)
  53.     jsr    r5,lvalue
  54.     mov    r3,-(sp)
  55.     bic    $!7,r3
  56.     cmp    r3,$1        / integer
  57.     bne    7b
  58.     jsr    r5,e2
  59.     cmp    r0,$36.        / ,
  60.     bne    7b
  61.     jsr    r5,rvalue
  62.     mov    (sp),r2
  63.     jsr    r5,convrt
  64.     mov    (sp),r3
  65.     clrb    r3
  66.     swab    r3
  67.     jsr    r5,code
  68.         <    gas%d\n    goto; 2f\n\0>; .even
  69.         r3
  70.     mov    dotabp,r2
  71.     mov    dotab-4(r2),r0
  72.     jsr    r5,code
  73.         <t%d:\n\0>; .even
  74.         r0
  75.     mov    (sp)+,r3
  76.     mov    (sp)+,r2
  77.     mov    r0,-(sp)
  78.     mov    r3,-(sp)
  79.     jsr    r5,lvalue
  80.     jsr    r5,e2
  81.     mov    r0,-(sp)
  82.     jsr    r5,rvalue
  83.     mov    2(sp),r2
  84.     jsr    r5,convrt
  85.     cmp    (sp)+,$36.        / ,
  86.     bne    1f
  87.     jsr    r5,e2
  88.     mov    r0,-(sp)
  89.     jsr    r5,rvalue
  90.     mov    2(sp),r2
  91.     jsr    r5,convrt
  92.     mov    (sp)+,r0
  93.     jsr    r5,code
  94.         <    do2\0>; .even
  95.     br    2f
  96. 1:
  97.     jsr    r5,code
  98.         <    do1\0>; .even
  99. 2:
  100.     mov    (sp)+,r3
  101.     clrb    r3
  102.     swab    r3
  103.     mov    (sp)+,r2
  104.     jsr    r5,code
  105.         <%d; o%d\n2:\n\0>; .even
  106.         r3
  107.         r2
  108.     rts    r5
  109.  
  110. doend:
  111.     tst    r0
  112.     bne    1f
  113.     jsr    pc,gen
  114.     rts    r5
  115. 1:
  116.     clr    r2
  117. 1:
  118.     cmp    r2,dotabp
  119.     bhis    1f
  120.     add    $4,r2
  121.     cmp    r0,dotab-2(r2)
  122.     bne    1b
  123.     jsr    pc,gen
  124.     br    doend
  125. 1:
  126.     rts    r5
  127.  
  128. gen:
  129.     mov    r0,-(sp)
  130.     mov    dotabp,r2
  131.     cmp    r0,dotab-2(r2)
  132.     beq    1f
  133.     jsr    r5,error; 43.
  134. 1:
  135.     mov    dotab-4(r2),r0
  136.     sub    $4,dotabp
  137.     jsr    r5,code
  138.         <    goto; t%d\no%d:\n\0>; .even
  139.         r0
  140.         r0
  141.     mov    (sp)+,r0
  142.     rts    pc
  143.  
  144.