home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Distributions / ucb / spencer_2bsd.tar.gz / 2bsd.tar / src / px / 25set.s < prev    next >
Text File  |  1980-02-17  |  1KB  |  148 lines

  1. /
  2. / SET OPERATIONS
  3. /
  4. _ADDT:
  5.     bne    1f
  6.     mov    (lc)+,r3
  7. 1:
  8.     inc    r3
  9.     bic    $1,r3
  10.     mov    sp,r0
  11.     add    r3,sp
  12.     mov    sp,r1
  13.     asr    r3
  14. 1:
  15.     bis    (r0)+,(r1)+
  16.     sob    r3,1b
  17.     return
  18. _SUBT:
  19.     bne    1f
  20.     mov    (lc)+,r3
  21. 1:
  22.     inc    r3
  23.     bic    $1,r3
  24.     mov    sp,r0
  25.     add    r3,sp
  26.     mov    sp,r1
  27.     asr    r3
  28. 1:
  29.     bic    (r0)+,(r1)+
  30.     sob    r3,1b
  31.     bic    (lc)+,-(r1)
  32.     return
  33. _MULT:
  34.     bne    1f
  35.     mov    (lc)+,r3
  36. 1:
  37.     inc    r3
  38.     bic    $1,r3
  39.     mov    sp,r0
  40.     add    r3,sp
  41.     mov    sp,r1
  42.     asr    r3
  43. 1:
  44.     mov    (r0)+,r2
  45.     com    r2
  46.     bic    r2,(r1)+
  47.     sob    r3,1b
  48.     return
  49. _CARD:
  50.     bne    1f
  51.     mov    (lc)+,r3
  52. 1:
  53.     mov    r3,r1
  54.     mov    sp,r2
  55.     inc    r3
  56.     bic    $1,r3
  57.     add    r3,sp
  58.     clr    r3
  59. 1:
  60.     movb    (r2),r0
  61.     bic    $!17,r0
  62.     asl    r0
  63.     add    poptab(r0),r3
  64.     movb    (r2)+,r0
  65.     ash    $-3,r0
  66.     bic    $!36,r0
  67.     add    poptab(r0),r3
  68.     sob    r1,1b
  69.     mov    r3,-(sp)
  70.     return
  71. .data
  72. poptab:
  73.     0    / 0000
  74.     1    / 0001
  75.     1    / 0010
  76.     2    / 0011
  77.     1    / 0100
  78.     2    / 0101
  79.     2    / 0110
  80.     3    / 0111
  81.     1    / 1000
  82.     2    / 1001
  83.     2    / 1010
  84.     3    / 1011
  85.     2    / 1100
  86.     3    / 1101
  87.     3    / 1110
  88.     4    / 1111
  89. .text
  90. _CTTOT:
  91.     bne    1f
  92.     mov    (lc)+,r3
  93. 1:
  94.     mov    r3,-(sp)
  95.     mov    (lc)+,-(sp)
  96.     mov    (lc)+,-(sp)
  97.     jsr    pc,_pcttot
  98.     mov    r0,sp
  99.     return
  100. _IN:
  101.     bne    1f
  102.     mov    (lc)+,r3
  103. 1:
  104.     mov    (sp)+,r2
  105.     sub    (lc)+,r2
  106.     bmi    8f
  107.     cmp    r2,(lc)+
  108.     bgt    9f
  109.     mov    r2,r1
  110.     bic    $!7,r1
  111.     ash    $-3,r2
  112.     add    sp,r2
  113.     inc    r3
  114.     bic    $1,r3
  115.     add    r3,sp
  116.     mov    $1,r0
  117.     ash    r1,r0
  118.     bitb    r0,(r2)
  119.     jne    true
  120.     jmp    false
  121. 8:
  122.     tst    (lc)+
  123. 9:
  124.     inc    r3
  125.     bic    $1,r3
  126.     add    r3,sp
  127.     jmp    false
  128. _INCT:
  129.     mov    (sp)+,r2
  130.     mov    (sp)+,r3
  131. 1:
  132.     cmp    r2,(sp)+
  133.     blt    2f
  134.     cmp    r2,(sp)+
  135.     bgt    3f
  136.     dec    r3
  137.     add    r3,r3
  138.     add    r3,r3
  139.     add    r3,sp
  140.     mov    $1,-(sp)
  141.     return
  142. 2:
  143.     tst    (sp)+
  144. 3:
  145.     sob    r3,1b
  146.     clr    -(sp)
  147.     return
  148.