57 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
! (c) copyright 1984 by the Vrije Universiteit, Amsterdam, The Netherlands.
 | 
						|
! See the copyright notice in the ACK home directory, in the file "Copyright".
 | 
						|
!=========================================================================
 | 
						|
 | 
						|
! This is an interpreter for EM programs with no virtual memory for the
 | 
						|
! the PMDS-II . This interpreter is adapted from an interpreter which was
 | 
						|
! made for the pdp11 by Evert Wattel and Hans van Staveren . The present
 | 
						|
! version is made by Freek van Schagen
 | 
						|
!		     Vrije Universiteit
 | 
						|
!		     Amsterdam.
 | 
						|
! Heavily modified by Ceriel Jacobs for better system-call support,
 | 
						|
! floating point, and other miscellaneous fixes
 | 
						|
 | 
						|
 | 
						|
!-------------------------------------------------------------------------
 | 
						|
 | 
						|
! The program requires preprocessing by the C-preprocessor . There are
 | 
						|
! several options :
 | 
						|
!	lword:  4byte word size in stead of 2 byte word size ;
 | 
						|
!	test:   checking for undefined variables , nil pointers
 | 
						|
!		array indices , overflow , etc ;
 | 
						|
!	last:	generation of a file with the last 16 lines executed ;
 | 
						|
!	count:	generation of a file with a flow count ;
 | 
						|
!	flow:	generation of a file with a flow bitmap ;
 | 
						|
!	prof:	generation of a file with a runtime profile ;
 | 
						|
!	opfreq:	generation of a file with a frequency count per opcode.
 | 
						|
 | 
						|
!--------------------------------------------------------------------------
 | 
						|
 | 
						|
! Memory layout:
 | 
						|
 | 
						|
!  --------------------------------------------------------------------------
 | 
						|
!  |		|	|     |		|	|	|	|	|   |
 | 
						|
!  |	1	|   2	|  3  |	   4	|   5	|   6	|   	|   7	| 8 |
 | 
						|
!  |		|	|     |		|	|	|	|	|   |
 | 
						|
!  --------------------------------------------------------------------------
 | 
						|
 | 
						|
!	1:	Interpreter text+data+bss.
 | 
						|
!	2:	EM text.
 | 
						|
!	3:	EM procedure descriptors.
 | 
						|
!	4:	EM global data area.
 | 
						|
!	5:	tables for flow , count , profile.
 | 
						|
!	6:	EM heap area.
 | 
						|
!	7:	EM local data and stack.
 | 
						|
!	8:	Arguments to the interpreter .
 | 
						|
 | 
						|
 | 
						|
!REGISTER USE
 | 
						|
!	pc	programcounter
 | 
						|
!	a7=sp	stackpointer		d7	if lword: 1 , if not lword: 0
 | 
						|
!	a6	external base= eb	d6	0
 | 
						|
!	a5	scratch			d5	scratch
 | 
						|
!	a4	address of loop		d4	scratch
 | 
						|
!	a3	EM programcounter	d3	scratch
 | 
						|
!	a2	local base =lb		d2	scratch
 | 
						|
!	a1	address of return area	d1	scratch
 | 
						|
!	a0	scratch			d0	opcode byte and scratch
 |