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

  1. /
  2. /
  3.  
  4. / a4 -- pdp-11 assembler pass 2
  5.  
  6. oset:
  7.     mov    r2,-(sp)
  8.     mov    (r5)+,r1
  9.     mov    r0,r2
  10.     bic    $!777,r0
  11.     add    r1,r0
  12.     add    $6,r0
  13.     mov    r0,(r1)+    / next slot
  14.     mov    r1,r0
  15.     add    $1004,r0
  16.     mov    r0,(r1)+    / buf max
  17.     mov    r2,(r1)+    / seek addr
  18.     mov    (sp)+,r2
  19.     rts    r5
  20.  
  21. putw:
  22.     mov    r1,-(sp)
  23.     mov    r2,-(sp)
  24.     mov    (r5)+,r2
  25.     mov    (r2)+,r1    / slot
  26.     cmp    r1,(r2)        / buf max
  27.     bhis    1f
  28.     mov    r0,(r1)+
  29.     mov    r1,-(r2)
  30.     br    2f
  31. 1:
  32.     tst    (r2)+
  33.     mov    r0,-(sp)
  34.     jsr    r5,flush1
  35.     mov    (sp)+,r0
  36.     mov    r0,*(r2)+
  37.     add    $2,-(r2)
  38. 2:
  39.     mov    (sp)+,r2
  40.     mov    (sp)+,r1
  41.     rts    r5
  42.  
  43. flush:
  44.     mov    (r5)+,r2
  45.     cmp    (r2)+,(r2)+
  46. flush1:
  47.     mov    (r2)+,r1
  48.     mov    r1,0f        / seek address
  49.     mov    fout,r0
  50.     sys    indir; 9f
  51.     .data
  52. 9:    sys    seek; 0:..; 0
  53.     .text
  54.     bic    $!777,r1
  55.     add    r2,r1        / write address
  56.     mov    r1,0f
  57.     mov    r2,r0
  58.     bis    $777,-(r2)
  59.     inc    (r2)        / new seek addr
  60.     cmp    -(r2),-(r2)
  61.     sub    (r2),r1
  62.     neg    r1
  63.     mov    r1,0f+2        / count
  64.     mov    r0,(r2)        / new next slot
  65.     mov    fout,r0
  66.     sys    indir; 9f
  67.     .data
  68. 9:    sys    write; 0:..; ..
  69.     .text
  70.     rts    r5
  71.  
  72. readop:
  73.     mov    savop,r4
  74.     beq    1f
  75.     clr    savop
  76.     rts    pc
  77. 1:
  78.     jsr    pc,getw1
  79.     cmp    r4,$200
  80.     blo    1f
  81.     cmp    r4,$4000
  82.     blo    2f
  83.     add    $usymtab-4000,r4
  84.     rts    pc
  85. 2:
  86.     add    $symtab-1000,r4
  87. 1:
  88.     rts    pc
  89.  
  90. getw:
  91.     mov    savop,r4
  92.     beq    getw1
  93.     clr    savop
  94.     rts    pc
  95. getw1:
  96.     dec    ibufc
  97.     bgt    1f
  98.     movb    fin,r0
  99.     sys    read; inbuf; 512.
  100.     bes    3f
  101.     asr    r0
  102.     mov    r0,ibufc
  103.     bne    2f
  104. 3:
  105.     mov    $4,r4
  106.     sev
  107.     rts    pc
  108. 2:
  109.     mov    $inbuf,ibufp
  110. 1:
  111.     mov    *ibufp,r4
  112.     add    $2,ibufp
  113.     rts    pc
  114.