56 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
#
 | 
						|
; $Header$
 | 
						|
;
 | 
						|
; (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
 | 
						|
;
 | 
						|
;          This product is part of the Amsterdam Compiler Kit.
 | 
						|
;
 | 
						|
; Permission to use, sell, duplicate or disclose this software must be
 | 
						|
; obtained in writing. Requests for such permissions may be sent to
 | 
						|
;
 | 
						|
;      Dr. Andrew S. Tanenbaum
 | 
						|
;      Wiskundig Seminarium
 | 
						|
;      Vrije Universiteit
 | 
						|
;      Postbox 7161
 | 
						|
;      1007 MC Amsterdam
 | 
						|
;      The Netherlands
 | 
						|
;
 | 
						|
; 
 | 
						|
 | 
						|
; Author: J.W. Stevenson */
 | 
						|
 | 
						|
 mes 2,EM_WSIZE,EM_PSIZE
 | 
						|
 | 
						|
#define	SIZE	0
 | 
						|
#define	HIGH	EM_WSIZE
 | 
						|
#define	LOWB	2*EM_WSIZE
 | 
						|
#define	BASE	3*EM_WSIZE
 | 
						|
 | 
						|
; _bts is called with four parameters:
 | 
						|
;	- the initial set (BASE)
 | 
						|
;	- low bound of range of bits (LOWB)
 | 
						|
;	- high bound of range of bits (HIGH)
 | 
						|
;	- set size in bytes (SIZE)
 | 
						|
 | 
						|
 exp $_bts
 | 
						|
 pro $_bts,0
 | 
						|
 lal BASE	; address of initial set
 | 
						|
 lol SIZE
 | 
						|
 los EM_WSIZE	; load initial set
 | 
						|
1
 | 
						|
 lol LOWB	; low bound
 | 
						|
 lol HIGH	; high bound
 | 
						|
 bgt *2		; while low <= high
 | 
						|
 lol LOWB
 | 
						|
 lol SIZE
 | 
						|
 set ?		; create [low]
 | 
						|
 lol SIZE
 | 
						|
 ior ?		; merge with initial set
 | 
						|
 inl LOWB	; increment low bound
 | 
						|
 bra *1		; loop back
 | 
						|
2
 | 
						|
 lal BASE
 | 
						|
 lol SIZE
 | 
						|
 sts EM_WSIZE	; store result over initial set
 | 
						|
 ret 0
 | 
						|
 end ?
 |