|
|
1.1 ! root 1: # ! 2: # 25set.s ! 3: # ! 4: # SET OPERATIONS ! 5: # ! 6: _ADDT: ! 7: cvtbl (r10)+,r0 ! 8: bneq l2501 ! 9: cvtwl (r10)+,r0 ! 10: l2501: ! 11: blbc r0,l2502 ! 12: incl r0 #r0 has number of bytes in set ! 13: l2502: ! 14: addl3 sp,r0,r1 #r1 has pointer to second set ! 15: ashl $-1,r0,r0 #r0 has number of words in set ! 16: l2503: ! 17: bisw2 (sp)+,(r1)+ ! 18: sobgtr r0,l2503 ! 19: jmp (r8) ! 20: _SUBT: ! 21: cvtbl (r10)+,r0 ! 22: bneq l2504 ! 23: cvtwl (r10)+,r0 ! 24: l2504: ! 25: blbc r0,l2505 ! 26: incl r0 #r0 has number of bytes in set ! 27: l2505: ! 28: addl3 sp,r0,r1 #r1 has pointer to second set ! 29: ashl $-1,r0,r0 #r0 has number of words in set ! 30: l2506: ! 31: bicw2 (sp)+,(r1)+ ! 32: sobgtr r0,l2506 ! 33: bicw2 (r10)+,-(r1) ! 34: jmp (r8) ! 35: _MULT: ! 36: cvtbl (r10)+,r0 ! 37: bneq l2507 ! 38: cvtwl (r10)+,r0 ! 39: l2507: ! 40: blbc r0,l2508 ! 41: incl r0 #r0 has number of bytes in set ! 42: l2508: ! 43: addl3 sp,r0,r1 #r1 has pointer to second set ! 44: ashl $-1,r0,r0 #r0 has number of words in set ! 45: l2509: ! 46: mcomw (sp)+,r3 ! 47: bicw2 r3,(r1)+ ! 48: sobgtr r0,l2509 ! 49: jmp (r8) ! 50: _CARD: ! 51: cvtbl (r10)+,r0 #r0 has number of bytes in set ! 52: bneq l2510 ! 53: cvtwl (r10)+,r0 ! 54: l2510: ! 55: blbc r0,l2511 ! 56: incl r0 ! 57: l2511: ! 58: addl3 r0,sp,r4 #r4 has new stack addr ! 59: ashl $3,r0,r0 #r0 has number of bits in set ! 60: mnegl $1,r1 #will init r1 to zero ! 61: mnegl $1,r5 #will init r2 to zero ! 62: l2512: ! 63: incl r1 #count found element ! 64: incl r5 #advance to next field position ! 65: l2521: ! 66: ffs r5,$32,(sp),r5 #find next set bit ! 67: beql l2521 #nothing found, so continue ! 68: cmpl r5,r0 #check for end of field ! 69: blss l2512 #element found, so count and continue ! 70: movl r4,sp #clear stack ! 71: movw r1,-(sp) #put answer on stack ! 72: jmp (r8) ! 73: _CTTOT: ! 74: cvtbl (r10)+,-(sp) ! 75: bneq l2513 ! 76: cvtwl (r10)+,(sp) ! 77: l2513: ! 78: cvtwl (r10)+,-(sp) ! 79: cvtwl (r10)+,-(sp) ! 80: calls $4,_pcttot ! 81: movw r0,sp ! 82: jmp (r8) ! 83: _IN: ! 84: cvtbl (r10)+,r0 ! 85: bneq l2514 ! 86: cvtwl (r10)+,r0 #r0 has size of set ! 87: l2514: ! 88: blbc r0,l2515 ! 89: incl r0 ! 90: l2515: ! 91: cvtwl (sp)+,r1 #r1 has set index ! 92: addl3 r0,sp,r4 #r4 points to new top of stack ! 93: subw2 (r10)+,r1 #check below lower ! 94: blssu l2516 ! 95: cmpw r1,(r10)+ #check above upper ! 96: bgtru l2517 ! 97: bbc r1,(sp),l2517 #check for bit set ! 98: movl r4,sp #bit found ! 99: movw $1,-(sp) ! 100: jmp (r8) ! 101: l2516: ! 102: addl2 $2,r10 ! 103: l2517: ! 104: movl r4,sp #bit not found ! 105: clrw -(sp) ! 106: jmp (r8) ! 107: _INCT: ! 108: incl r10 ! 109: cvtwl (sp)+,r0 #r0 has value to find ! 110: cvtwl (sp)+,r1 #r1 has pair count ! 111: l2518: ! 112: cmpw r0,(sp)+ ! 113: blss l2519 ! 114: cmpw r0,(sp)+ ! 115: bgtr l2520 ! 116: decl r1 ! 117: moval (sp)[r1],sp #clear off remaining data on stack ! 118: movw $1,-(sp) #success ! 119: jmp (r8) ! 120: l2519: ! 121: addl2 $2,sp ! 122: l2520: ! 123: sobgtr r1,l2518 ! 124: clrw -(sp) #failure ! 125: jmp (r8)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.