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