1 /* MACLISP symbol section for compiled SUBR */
 2 
 3 dcl 1 symbol_root based aligned,                  /* starts off the LISP symbol section */
 4 
 5       2 version fixed bin,                        /* 2 for this dcl (new-arrays version) */
 6       2 number_objects fixed bin,                 /* number of objects which are to be made at fasload time */
 7       2 objects unal,
 8         3 fixnum_blockp bit(18) unal,             /* pointers to blocks describing variaous type classes of objects */
 9         3 flonum_blockp bit(18) unal,
10         3 string_blockp bit(18) unal,
11         3 bignum_blockp bit(18) unal,
12         3 atsym_blockp bit(18) unal,
13         3 cons_blockp bit(18) unal,
14       2 subr_block_size fixed bin(18),            /* number of double word items to be put in subr block */
15       2 subr_block_items unal,                    /* pointers to blocks indicating which objects to place in subr block */
16         3 entry_blockp bit(18) unal,
17         3 const_blockp bit(18) unal,
18         3 links_blockp bit(18) unal,
19       2 action_blockp bit(18) unal,               /* points to array of operations to be done at fasload time, in order */
20       2 array_links_blockp bit(18) unal;          /* points at block of array links */
21 
22 
23 dcl 1  fixnum_block based aligned,
24       2 count fixed bin(18),
25       2 fixnums(0 refer(fixnum_block.count)) fixed bin(35);
26 
27 dcl 1 flonum_block based aligned,
28       2 count fixed bin(18),
29       2 flonums(0 refer(flonum_block.count)) float bin(27);
30 
31 dcl 1 string_block based aligned,
32       2 count fixed bin(18),
33       2 string_offset(0 refer(string_block.count)) bit(18) unal;      /* pointers to string representation */
34 
35 
36 dcl 1 atsym_block based aligned,
37       2 count fixed bin(18),
38       2 atsym_offset(0 refer(atsym_block.count)) bit(18) unal;        /* pointers to atom names */
39 
40 dcl 1 bignum_block based aligned,
41       2 count fixed bin(18),
42       2 bignum_offsets(0 refer(bignum_block.count)) bit(18) unal;
43 
44 dcl 1 cons_block based aligned,
45       2 count fixed bin(18),
46       2 conses(0 refer(cons_block.count)) unal,
47         3 car bin(17),
48         3 cdr bin(17);
49 
50 dcl 1 string_chars based aligned,
51       2 flags unal,
52         3 uninterned_atom bit(1),
53         3 padding bit(10),
54       2 length fixed bin(24)unal,
55       2 chars char(0 refer (string_chars.length)) unaligned;
56 
57 dcl 1 entry_block based aligned,
58       2 count fixed bin(18),
59       2 entry_info(0 refer(entry_block.count)) unal,
60         3 nargs bit(18),
61         3 entrypoint bit(18);
62 
63 dcl 1 const_block based aligned,
64       2 count fixed bin(18),
65       2 constants (0 refer(const_block.count)) fixed bin(17) unal;
66 
67 dcl 1 links_block based aligned,
68       2 count fixed bin(18),
69       2 link_info(0 refer(links_block.count)) bit(27);
70 
71 dcl 1 array_links_block based aligned,
72       2 count fixed bin(18),
73       2 array_link(0 refer(array_links_block.count)),
74         3 control_word bit(36);                   /* rest is filled in at load time.
75                                                      this word has type, ndims, symbol offset. */
76 
77 dcl 1 action_block based aligned,
78       2 count fixed bin(18),
79       2 actions(0 refer(action_block.count)) unal,          /* each action described as one of these objects */
80         3 action_code fixed bin(17) unal,
81         3 operand fixed bin(17) unal;                       /* offset of constant which is used in operation */
82 
83 /* End of description of MACLISP Compiled symbol tree */