home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Distributions / ucb / spencer_2bsd.tar.gz / 2bsd.tar / src / pascal / assubs / mcrt0.s < prev    next >
Encoding:
Text File  |  1980-02-17  |  951 b   |  70 lines

  1. / C runtime startoff including monitoring
  2. /
  3. / Modified to work in separate i/d
  4. / Remove comments below to use without floating point
  5. /
  6.  
  7. cbufs    = 150.
  8.  
  9. .globl    _monitor
  10. .globl    _sbrk
  11. .globl    _main
  12. .globl    _exit
  13. .globl    _IEH3exit
  14. .globl    _etext
  15. .comm    countbase,2
  16.  
  17. .comm    savr5,2
  18.  
  19. /.globl    fptrap,fpjsr
  20. start:
  21. /    sys    signal; 4; fptrap
  22. /    jsr    pc,fpjsr
  23.     setd
  24.     mov    sp,r0
  25.     mov    (r0),-(sp)
  26.     tst    (r0)+
  27.     mov    r0,2(sp)
  28.  
  29.     mov    $_etext,r1
  30.     sub    $eprol,r1
  31.     add    $7,r1
  32.     ash    $-3,r1
  33.     bic    $!17777,r1
  34.     mov    $cbufs,-(sp)
  35.     add    $3*[cbufs+1],r1
  36.     mov    r1,-(sp)
  37.     asl    r1
  38.     mov    r1,-(sp)
  39.     jsr    pc,_sbrk
  40.     tst    (sp)+
  41.     cmp    r0,$-1
  42.     beq    9f
  43.     mov    r0,-(sp)
  44.     add    $6,r0
  45.     mov    r0,countbase
  46.     mov    $_etext,-(sp)
  47.     mov    $eprol,-(sp)
  48.     jsr    pc,_monitor
  49.     add    $10.,sp
  50.     jsr    pc,_main
  51.     cmp    (sp)+,(sp)+
  52.     jsr    pc,_exit
  53.  
  54. 9:
  55.     mov    $2,r0
  56.     sys    write; 8f; 9f-8f
  57.  
  58. .data; 8: <No space for monitor buffer\n>; 9:.even; .text
  59.  
  60. _exit:
  61. _IEH3exit:
  62.     mov    r5,-(sp)
  63.     mov    sp,r5
  64.     clr    -(sp)
  65.     jsr    pc,_monitor
  66.     tst    (sp)+
  67.     mov    4(r5),r0
  68.     sys    exit
  69. eprol:
  70.