home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / libc / csu / fmcrt0.s < prev    next >
Encoding:
Text File  |  1979-01-10  |  1.0 KB  |  88 lines

  1. / C runtime startoff including monitoring
  2.  
  3. cbufs    = 300.
  4. exit    = 1.
  5. write    = 4.
  6. signal    = 48.
  7.  
  8. .globl    _monitor
  9. .globl    _sbrk
  10. .globl    _main
  11. .globl    _exit
  12. .globl    _environ
  13. .globl    _etext
  14. .globl    __cleanup
  15. .globl    countbase
  16. .globl    fptrap
  17.  
  18.  
  19. start:
  20.     sys    signal; 4; fptrap
  21.     setd
  22.     mov    2(sp),r0
  23.     clr    -2(r0)
  24.     mov    sp,r0
  25.     sub    $4,sp
  26.     mov    4(sp),(sp)
  27.     tst    (r0)+
  28.     mov    r0,2(sp)
  29. 1:
  30.     tst    (r0)+
  31.     bne    1b
  32.     cmp    r0,*2(sp)
  33.     blo    1f
  34.     tst    -(r0)
  35. 1:
  36.     mov    r0,4(sp)
  37.     mov    r0,_environ
  38.  
  39.     mov    $_etext,r1
  40.     sub    $eprol,r1
  41.     add    $7,r1
  42.     ash    $-3,r1
  43.     bic    $!17777,r1
  44.     mov    $cbufs,-(sp)
  45.     add    $3*[cbufs+1],r1
  46.     mov    r1,-(sp)
  47.     asl    r1
  48.     mov    r1,-(sp)
  49.     jsr    pc,_sbrk
  50.     tst    (sp)+
  51.     cmp    r0,$-1
  52.     beq    9f
  53.     mov    r0,-(sp)
  54.     add    $6,r0
  55.     mov    r0,countbase
  56.     mov    $_etext,-(sp)
  57.     mov    $eprol,-(sp)
  58.     jsr    pc,_monitor
  59.     add    $10.,sp
  60.     jsr    pc,_main
  61.     cmp    (sp)+,(sp)+
  62.     mov    r0,(sp)
  63.     jsr    pc,_exit
  64.  
  65. 9:
  66.     mov    $2,r0
  67.     sys    write; 8f; 9f-8f
  68.  
  69. .data; 8: <No space for monitor buffer\n>; 9:.even; .text
  70.  
  71. _exit:
  72.     mov    r5,-(sp)
  73.     mov    sp,r5
  74.     jsr    pc,__cleanup
  75.     clr    -(sp)
  76.     jsr    pc,_monitor
  77.     tst    (sp)+
  78.     mov    4(r5),r0
  79.     sys    exit
  80. eprol:
  81. .bss
  82. _environ:
  83.     .=.+2
  84. countbase:
  85.     .=.+2
  86. .data
  87.     .=.+2
  88.