1 /* lisp stack header format */
 2 /* Last modified 7/21/72 by Reed for in_pl1 flag */
 3 /* Modified 1978 by Greenberg for unwind-protect ops */
 4 
 5 declare
 6 
 7      1 stack_seg based aligned,                   /* stored in base of unmkd_pdl segment */
 8        2 marked_stack_bottom ptr,                 /* where marked stack begins... */
 9        2 unmkd_stack_bottom ptr,                  /* where unmkd_ stack actually starts */
10        2 stack_ptr_ptr ptr,                       /* points at lisp_static_vars_$stack_ptr */
11        2 unmkd_ptr_ptr ptr,                       /* points at lisp_static_vars_$unmkd_ptr's offset word */
12        2 array_pointer ptr,                       /* obsolete */
13        2 nil fixed bin(71),                       /* object for nil */
14        2 true fixed bin(71),                      /* object for t */
15        2 in_pl1_code bit(36),                     /* flag indicating that we are in pl1 code if non-zero */
16        2 padding0 bit(36),                        /* double word boundary preservation */
17        2 bind_op ptr,                             /* pointers to operators for run-time support */
18        2 unbind_op ptr,
19        2 errset1_op ptr,
20        2 errset2_op ptr,
21        2 unerrset_op ptr,
22        2 call_op ptr,
23        2 catch1_op ptr,
24        2 catch2_op ptr,
25        2 uncatch_op ptr,
26         2 gensym_data (2) bit(36) aligned,        /* stuff used by the gensym function */
27        2 system_lp ptr,                           /* pointer to the system's linkage section */
28        2 iogbind_op ptr,
29        2 unseen_go_tag_op ptr,
30        2 throw1_op ptr,
31        2 throw2_op ptr,
32        2 signp_op ptr,
33        2 type_fields bit(72) aligned,             /* fixnum, flonum type for compiled code */
34        2 return_op ptr,
35        2 err_op ptr,
36        2 pl1_interface ptr,                       /* pointer to pl1 interface for type 2 subrs. */
37        2 pl1_lsubr_interface ptr,                 /* same for type -2 subrs */
38        2 cons_opr ptr,                            /* cons operator */
39        2 ncons_opr ptr,                           /* ncons operator */
40        2 xcons_opr ptr,                           /* xcons operator */
41        2 begin_list_opr ptr,                      /* operator to make initial cell of list */
42        2 append_list_opr ptr,                     /* operator to append to last-made cell of list */
43        2 terminate_list_opr ptr,                  /* opeator to append last cell to next to last cell of list */
44        2 compare_op ptr,                          /* fixnum/flonum comparison operator */
45        2 link_op ptr,
46        2 array_operator pointer,                  /* accessing operator, invoked by arrays */
47        2 dead_array_operator pointer,             /* dead arrays invoke this operator instead */
48        2 store_operator pointer,                  /* operator to do compiled store */
49        2 floating_store_operator pointer,         /* ditto, but operand is in EAQ */
50        2 array_info_for_store pointer,            /* -> array_info block of last array referenced */
51        2 array_offset_for_store fixed bin(18),    /* offset in array_data block of last array element referenced */
52        2 padding bit(36),
53        2 array_link_snap_opr pointer,
54        2 create_string_desc_op ptr,
55        2 create_array_desc_op ptr,
56        2 pl1_call_op ptr,
57        2 cons_string_op ptr,
58        2 create_varying_string_op ptr,
59        2 unwp1_op ptr,
60        2 unwp2_op ptr,
61        2 ununwp_op ptr,
62        2 irest_return_op ptr,
63        2 pl1_call_nopop_op ptr,
64        2 rcv_char_star_op ptr,
65        2 spare2 (7) ptr,
66        2 begin_unmkd_stack(16325) fixed bin(71);  /* rest of segment is the unmarked pdl */
67 
68 dcl call_array_operator bit(36) static init("100112273120"b3),        /* tspbb ab|112,* */
69     call_dead_array_operator bit(36) static init("100114273120"b3);   /* tspbb ab|114,* */
70 
71 /* end stack segment format */