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

  1. /
  2. /
  3.  
  4. / a3 -- pdp-11 assembler pass 2
  5.  
  6. assem:
  7.     jsr    pc,readop
  8.     cmp    r4,$5
  9.     beq    2f
  10.     cmp    r4,$'<
  11.     beq    2f
  12.     jsr    pc,checkeos
  13.         br eal1
  14.     mov    r4,-(sp)
  15.     cmp    (sp),$1
  16.     bne    1f
  17.     mov    $2,(sp)
  18.     jsr    pc,getw
  19.     mov    r4,numval
  20. 1:
  21.     jsr    pc,readop
  22.     cmp    r4,$'=
  23.     beq    4f
  24.     cmp    r4,$':
  25.     beq    1f
  26.     mov    r4,savop
  27.     mov    (sp)+,r4
  28. 2:
  29.     jsr    pc,opline
  30. dotmax:
  31.     tstb    passno
  32.     bne    eal1
  33.     movb    dotrel,r0
  34.     asl    r0
  35.     cmp    dot,txtsiz-4(r0)
  36.     blos    ealoop
  37.     mov    dot,txtsiz-4(r0)
  38. eal1:
  39.     jmp    ealoop
  40. 1:
  41.     mov    (sp)+,r4
  42.     cmp    r4,$200
  43.     bhis    1f
  44.     cmp    r4,$2
  45.     beq    3f
  46.     jsr    r5,error; 'x
  47.     br    assem
  48. 1:
  49.     tstb    passno
  50.     bne    2f
  51.     movb    (r4),r0
  52.     bic    $!37,r0
  53.     beq    5f
  54.     cmp    r0,$33
  55.     blt    6f
  56.     cmp    r0,$34
  57.     ble    5f
  58. 6:
  59.     jsr    r5,error; 'm
  60. 5:
  61.     bic    $37,(r4)
  62.     bis    dotrel,(r4)
  63.     mov    2(r4),brdelt
  64.     sub    dot,brdelt
  65.     mov    dot,2(r4)
  66.     br    assem
  67. 2:
  68.     cmp    dot,2(r4)
  69.     beq    assem
  70.     jsr    r5,error; 'p
  71.     br    assem
  72. 3:
  73.     mov    numval,r4
  74.     jsr    pc,fbadv
  75.     asl    r4
  76.     mov    curfb(r4),r0
  77.     movb    dotrel,(r0)
  78.     mov    2(r0),brdelt
  79.     sub    dot,brdelt
  80.     mov    dot,2(r0)
  81.     br    assem
  82. 4:
  83.     jsr    pc,readop
  84.     jsr    pc,expres
  85.     mov    (sp)+,r1
  86.     cmp    r1,$symtab    /test for dot
  87.     bne    1f
  88.     bic    $40,r3
  89.     cmp    r3,dotrel    / can't change relocation
  90.     bne    2f
  91.     cmp    r3,$4        / bss
  92.     bne    3f
  93.     mov    r2,dot
  94.     br    dotmax
  95. 3:
  96.     sub    dot,r2
  97.     bmi    2f
  98.     mov    r2,-(sp)
  99. 3:
  100.     dec    (sp)
  101.     bmi    3f
  102.     clr    r2
  103.     mov    $1,r3
  104.     jsr    pc,outb
  105.     br    3b
  106. 3:
  107.     tst    (sp)+
  108.     br    dotmax
  109. 2:
  110.     jsr    r5,error; '.
  111.     br    ealoop
  112. 1:
  113.     cmp    r3,$40
  114.     bne    1f
  115.     jsr    r5,error; 'r
  116. 1:
  117.     bic    $37,(r1)
  118.     bic    $!37,r3
  119.     bne    1f
  120.     clr    r2
  121. 1:
  122.     bisb    r3,(r1)
  123.     mov    r2,2(r1)
  124.  
  125. ealoop:
  126.     cmp    r4,$'\n
  127.     beq    1f
  128.     cmp    r4,$'\e
  129.     bne    9f
  130.     rts    pc
  131. 1:
  132.     inc    line
  133. 9:
  134.     jmp    assem
  135.  
  136. checkeos:
  137.     cmp    r4,$'\n
  138.     beq    1f
  139.     cmp    r4,$';
  140.     beq    1f
  141.     cmp    r4,$'\e
  142.     beq    1f
  143.     add    $2,(sp)
  144. 1:
  145.     rts    pc
  146.  
  147. fbadv:
  148.     asl    r4
  149.     mov    nxtfb(r4),r1
  150.     mov    r1,curfb(r4)
  151.     bne    1f
  152.     mov    fbbufp,r1
  153.     br    2f
  154. 1:
  155.     add    $4,r1
  156. 2:
  157.     cmpb    1(r1),r4
  158.     beq    1f
  159.     tst    (r1)
  160.     bpl    1b
  161. 1:
  162.     mov    r1,nxtfb(r4)
  163.     asr    r4
  164.     rts    pc
  165.  
  166.