home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / libc / csu / mcrt0.s < prev   
Encoding:
Text File  |  1979-01-10  |  1018 b   |  85 lines

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