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 ?
 |