home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / cmd / as / as11.s next >
Encoding:
Text File  |  1979-01-10  |  1.4 KB  |  130 lines

  1. /
  2. /
  3.  
  4. / PDP-11 assembler pass 0
  5.  
  6.     jmp    start
  7. go:
  8.     jsr    pc,assem
  9.     movb    pof,r0
  10.     sys    write; outbuf; 512.
  11.     jes    wrterr
  12.     movb    pof,r0
  13.     sys    close
  14.     movb    fbfil,r0
  15.     sys    close
  16.     tstb    errflg
  17.     bne    aexit
  18.     jsr    r5,fcreat; a.tmp3
  19.     mov    r0,r1
  20.     mov    symend,0f
  21.     sub    $usymtab,0f
  22.     sys    indir; 9f
  23.     jes    wrterr
  24.     .data
  25. 9:    sys    write; usymtab; 0:..
  26.     .text
  27.     mov    r1,r0
  28.     sys    close
  29.     sys    exec; fpass2; 1f
  30.     mov    $fpass2,r0
  31.     jsr    r5,filerr; "?\n
  32.  
  33. aexit:
  34.     sys    unlink; a.tmp1
  35.     sys    unlink; a.tmp2
  36.     sys    unlink; a.tmp3
  37.     mov    $3,r0
  38.     sys    exit
  39. .data
  40. 1:
  41.     fpass2
  42.     globfl
  43.     outfl
  44. outfp:
  45.     outfile
  46.     a.tmp1
  47.     a.tmp2
  48.     a.tmp3
  49.     0
  50. fpass2:
  51.     </lib/as2\0>
  52. globfl:
  53. unglob=.+1
  54.     <-\0\0>
  55. outfl:
  56.     <-o\0>
  57. outfile:
  58.     <a.out\0>
  59. 3:
  60.     <-g\0>
  61.     .even
  62.     .text
  63.  
  64. filerr:
  65.     mov    r4,-(sp)
  66.     mov    r0,r4
  67.     mov    r4,0f
  68.     clr    r0
  69. 1:
  70.     tstb    (r4)+
  71.     beq    1f
  72.     inc    r0
  73.     br    1b
  74. 1:
  75.     mov    r0,1f
  76.     mov    $1,r0
  77.     sys    indir; 9f
  78.     .data
  79. 9:    sys    write; 0:0; 1:0
  80.     .text
  81.     mov    r5,0f
  82.     mov    $1,0f+2
  83.     tstb    1(r5)
  84.     beq    1f
  85.     mov    $2,0f+2
  86. 1:
  87.     mov    $1,r0
  88.     sys    indir; 9f
  89.     .data
  90. 9:    sys    write; 0:0; 1
  91.     .text
  92.     tst    (r5)+
  93.     mov    (sp)+,r4
  94.     rts    r5
  95.  
  96. fcreat:
  97.     mov    r4,-(sp)
  98.     mov    (r5)+,r4
  99.     mov    r4,0f
  100. 1:
  101.     sys    indir; 9f
  102.     .data
  103. 9:    sys    stat; 0:..; outbuf
  104.     .text
  105.     bec    2f
  106.     mov    r4,0f
  107.     sys    indir; 9f
  108.     .data
  109. 9:    sys    creat; 0:..; 444
  110.     .text
  111.     bes    2f
  112.     mov    (sp)+,r4
  113.     rts    r5
  114. 2:
  115.     incb    9.(r4)
  116.     cmpb    9.(r4),$'z
  117.     blos    1b
  118.     mov    r4,r0
  119.     jsr    r5,filerr; "?\n
  120.     mov    $3,r0
  121.     sys    exit
  122.  
  123. .=.+2
  124. wrterr:
  125.     mov    $1,r0
  126.     sys    write; 9f; 9f-8f
  127.     inc    errflg
  128.     jbr    aexit
  129. 9:    <as: Write error on temp file.\n>; 8:
  130.