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

  1. /
  2. /
  3.  
  4. / 42 -- definition
  5.  
  6. .globl    bsss
  7.  
  8. .globl    code
  9. .globl    size
  10. .globl    declimpl
  11. .globl    cdata
  12. .globl    dodata
  13. .globl    dattab
  14.  
  15. bsss:
  16.     jsr    r5,cdata
  17.     cmp    progt,$6        / test block common
  18.     bne    1f
  19.     rts    r5
  20. 1:
  21.     jsr    r5,code
  22.         <.bss\n\0>; .even
  23.     mov    functm,r3
  24.     beq    1f
  25.     jsr    r5,code
  26.         <ft:    .=.+%d.\n\0>; .even
  27.         r3
  28. 1:
  29.     cmp    r4,$dattab            / any data?
  30.     beq    1f
  31.     jsr    r5,code
  32.         <.data\n\0>; .even
  33. 1:
  34.     jsr    r5,code
  35.         <base:\n\0>; .even
  36.     clr    r3
  37. 1:
  38.     cmp    r3,symtp
  39.     bhis    pass2
  40.     bit    $70,symtab(r3)            / test classed
  41.     bne    2f
  42.     jsr    r5,declimpl
  43. 2:
  44.     mov    symtab(r3),r0
  45.     mov    symtab+6(r3),r2
  46.     bic    $!70,r0            / class
  47.     cmp    r0,$10            / simple
  48.     beq    1f
  49.     cmp    r0,$20            / array
  50.     beq    1f
  51.     cmp    r0,$30            / extrn
  52.     bne    2f
  53.     bit    $200,symtab(r3)        / param
  54.     beq    2f
  55.     jsr    r5,code
  56.         <%n.    = %d.\n\0>; .even
  57.         r3
  58.         r2
  59. 2:
  60.     cmp    r0,$40            / common block
  61.     bne    2f
  62.     mov    symtab+6(r3),r2        / size
  63.     beq    2f
  64.     jsr    r5,code
  65.         <.comm    %n,%d.\n\0>; .even
  66.         r3
  67.         r2
  68. 2:
  69.     add    $8,r3
  70.     br    1b
  71.  
  72. 1:
  73.     bit    $300,symtab(r3)
  74.     beq    1f
  75.     jsr    r5,code
  76.         <%n_    = %d.\n\0>; .even
  77.         r3
  78.         r2
  79.     br    2b
  80. 1:
  81.     tst    r2
  82.     bne    1f
  83.     jsr    r5,size
  84.     mov    nxtaloc,r2
  85.     mov    r2,symtab+6(r3)
  86.     add    r0,nxtaloc
  87. 1:
  88.     jsr    r5,code
  89.         <%n_ = base+%d.\n\0>; .even
  90.         r3
  91.         r2
  92.     br    2b
  93.  
  94. pass2:
  95.     jsr    r5,dodata
  96.     rts    r5
  97.  
  98.