Pristine Ack-5.5
[Ack-5.5.git] / mach / mantra / int / copyright
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 !=========================================================================
4
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
9 !                    Vrije Universiteit
10 !                    Amsterdam.
11 ! Heavily modified by Ceriel Jacobs for better system-call support,
12 ! floating point, and other miscellaneous fixes
13
14
15 !-------------------------------------------------------------------------
16
17 ! The program requires preprocessing by the C-preprocessor . There are
18 ! several options :
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.
27
28 !--------------------------------------------------------------------------
29
30 ! Memory layout:
31
32 !  --------------------------------------------------------------------------
33 !  |            |       |     |         |       |       |       |       |   |
34 !  |    1       |   2   |  3  |    4    |   5   |   6   |       |   7   | 8 |
35 !  |            |       |     |         |       |       |       |       |   |
36 !  --------------------------------------------------------------------------
37
38 !       1:      Interpreter text+data+bss.
39 !       2:      EM text.
40 !       3:      EM procedure descriptors.
41 !       4:      EM global data area.
42 !       5:      tables for flow , count , profile.
43 !       6:      EM heap area.
44 !       7:      EM local data and stack.
45 !       8:      Arguments to the interpreter .
46
47
48 !REGISTER USE
49 !       pc      programcounter
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