COMPILATION LISTING OF SEGMENT lisp_char_fns_ Compiled by: Multics PL/I Compiler, Release 28b, of April 11, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 06/30/83 0844.4 mst Thu Options: map single_symbol_list 1 /* ************************************************************** 2* * * 3* * Copyright, (C) Massachusetts Institute of Technology, 1973 * 4* * * 5* ************************************************************** */ 6 lisp_char_fns_: proc; /* LISP functions similar to the PL/I builtins for manipulating strings */ 7 8 dcl stack ptr, 9 nargs fixed bin, 10 argno fixed bin, 11 argp ptr, 12 argp2 ptr, 13 myname fixed bin(35), 14 slen fixed bin, 15 lisp_error_ entry, 16 lisp_alloc_ entry(fixed bin, fixed bin(71)), 17 lisp_get_atom_ entry(char(*)aligned, fixed bin(71)), 18 unm ptr, 19 ercode(2) fixed bin(35) aligned based(unm), 20 num fixed bin; 21 22 stringlength: entry; 23 24 /* subr to get the length of a lisp string */ 25 26 stack = addrel(stack_ptr, -2); /* subr 1 */ 27 argno = 1; 28 myname = fn_stringlength; 29 call getstring; 30 31 num = argp -> lisp_string.string_length; 32 retnum: stack -> fixnum_fmt.type_info = fixnum_type; 33 stack -> fixedb = num; 34 exit: stack_ptr = addr(stack -> temp(2)); 35 return; 36 37 lsubr_prologue: proc; 38 39 stack = addrel(stack_ptr, -2); 40 nargs = stack -> fixedb; 41 stack = addrel(stack, nargs); 42 end; 43 catenate: entry; 44 45 /* lsubr to catenate together some strings */ 46 47 call lsubr_prologue; 48 slen = 0; 49 nargs = divide(nargs, -2, 17, 0); /* = + number of args */ 50 51 /* find out how long result will be */ 52 53 myname = fn_catenate; 54 do argno = 1 to nargs; 55 call getstring; 56 slen = slen + argp -> lisp_string.string_length; 57 end; 58 59 /* allocate space for the result */ 60 61 call lisp_alloc_(divide(slen+7,4,17,0), stack -> temp(nargs+1)); 62 stack -> temp_type(nargs+1) = String; 63 stack -> temp_ptr(nargs+1) -> lisp_string.string_length = slen; 64 65 /* now move the strings into the result */ 66 67 num = 0; 68 do argno = 1 to nargs; 69 call getstring; 70 slen = argp -> lisp_string.string_length; 71 substr(stack -> temp_ptr(nargs+1) -> lisp_string.string, num+1, slen) = argp -> lisp_string.string; 72 num = num + slen; 73 end; 74 75 /* move result down and return */ 76 77 stack -> temp(1) = stack -> temp(nargs+1); 78 go to exit; 79 80 /* routine to fetch arguments, checking type */ 81 82 getstring: proc; 83 84 dcl st ptr; 85 86 do while("1"b); /* loop until good arg seen */ 87 if stack -> temp_type36(argno) & String36 then do; 88 argp = stack -> temp_ptr(argno); 89 return; 90 end; 91 else if stack -> temp_type36(argno) & Atsym36 then do; 92 argp = addr(stack -> temp_ptr(argno) -> atom.pnamel); 93 return; 94 end; 95 call barf; 96 end; /* keep looping */ 97 98 barf: proc; /* interface to lisp_error_ */ 99 100 /* bad arg - barf */ 101 102 st = stack_ptr; 103 stack_ptr = addr(st -> temp(2)); 104 st -> temp(1) = stack -> temp(argno); /* move losing arg to top of marked pdl */ 105 unm = unmkd_ptr; 106 unmkd_ptr = addrel(unm, 2); 107 ercode(1) = bad_arg_correctable; 108 ercode(2) = myname; 109 call lisp_error_; 110 stack -> temp(argno) = st -> temp(1); 111 stack_ptr = st; 112 113 end barf; 114 115 116 117 getnum: entry; /* gets number into num */ 118 119 120 do while("1"b); /* loop until good arg gotten */ 121 if addr(stack -> temp(argno))->fixnum_fmt.type_info = fixnum_type 122 then do; 123 num = addr(stack -> temp(argno))->fixedb; 124 return; 125 end; 126 else if addr(stack -> temp(argno))->flonum_fmt.type_info = flonum_type 127 then do; 128 num = fixed(addr(stack -> temp(argno))->floatb); 129 return; 130 end; 131 call barf; 132 end; /* keep looping */ 133 134 end getstring; 135 136 Substr2: entry; 137 138 /* substring function of two arguments - obsoleted by substr lsubr but kept 139* for compatibility */ 140 141 stack = addrel(stack_ptr, -4); 142 myname = fn_substr; 143 144 substr2_joint: /* this is where (substr x y) comes */ 145 146 argno = 2; 147 call getnum; 148 149 argno = 1; 150 call getstring; 151 152 slen = argp -> lisp_string.string_length - num + 1; /* length of result */ 153 if slen < 0 then slen = 0; 154 155 /* before allocating, must save ptr to first arg since may garbage collect */ 156 157 stack -> temp(2) = stack -> temp(1); /* save while allocating */ 158 call lisp_alloc_(divide(slen+7,4,17,0), stack -> temp(1)); 159 argno = 2; /* get back string */ 160 call getstring; 161 stack -> temp_type(1) = String; 162 stack -> temp_ptr(1) -> lisp_string.string_length = slen; 163 stack -> temp_ptr(1) -> lisp_string.string = substr(argp -> lisp_string.string, num); 164 go to exit; 165 166 Substr: entry; 167 168 /* the substr lsubr, which takes 2 or 3 args and works like the PL/I substr builtin */ 169 170 call lsubr_prologue; 171 myname = fn_substr; 172 if nargs = -4 then go to substr2_joint; /* 2 args, do like substr2 */ 173 174 argno = 3; 175 call getnum; 176 slen = num; /* length of result */ 177 argno = 2; 178 call getnum; 179 argno = 1; 180 call getstring; 181 stack -> temp(2) = stack -> temp(1); /* save while allocating */ 182 183 if slen < 0 then slen = 0; 184 if num < 1 then num = 1; 185 else if num > argp -> lisp_string.string_length then num = argp -> lisp_string.string_length; 186 call lisp_alloc_(divide(slen+7,4,17,0), stack -> temp(1)); 187 argno = 2; 188 call getstring; /* restore argp after allocation possibly gc'ed*/ 189 stack -> temp_ptr(1) -> lisp_string.string_length = slen; 190 stack -> temp_type(1) = String; 191 stack -> temp_ptr(1) -> lisp_string.string = substr(argp -> lisp_string.string, num, min(slen, argp -> lisp_string.string_length - num + 1)); 192 go to exit; 193 194 Index: entry; 195 196 /* subr to find the first occurrence of the second string in the first; like the PL/I builtin index */ 197 198 stack = addrel(stack_ptr, -4); 199 myname = fn_index; 200 201 argno = 1; 202 call getstring; 203 204 argno = 2; 205 call getstring; 206 argp2 = argp; 207 208 209 argno = 1; 210 call getstring; /* first time was to check arg, but may have gc'ed */ 211 212 num = index(argp -> lisp_string.string, argp2 -> lisp_string.string); 213 go to retnum; 214 215 get_pname: entry; 216 217 /* get the print-name of an atomic symbol as a string */ 218 219 stack = addrel(stack_ptr, -2); 220 myname = fn_get_pname; 221 argno = 1; 222 call getstring; /* convert pname to string */ 223 slen = argp -> lisp_string.string_length; 224 stack_ptr = addr(stack->temp(3)); /* get place to save arg */ 225 stack -> temp(2) = stack -> temp(1); 226 call lisp_alloc_(divide(slen+7,4,17,0), stack -> temp(1)); 227 argno = 2; 228 call getstring; 229 stack -> temp_ptr(1) -> lisp_string.string_length = argp -> lisp_string.string_length; 230 substr(stack->temp_ptr(1)->lisp_string.string,1,slen) = substr(argp->lisp_string.string,1,slen); 231 stack -> lisp_ptr_type = stack -> lisp_ptr_type | String36; 232 go to exit; 233 234 make_atom: entry; 235 236 /* subr to make an uninterned atom given its pname as a string */ 237 238 stack = addrel(stack_ptr, -2); 239 myname = fn_make_atom; 240 argno = 1; 241 call getstring; 242 243 call lisp_get_atom_(argp -> lisp_string.string, stack -> temp(1)); /* gc prot since arg is "always" a string */ 244 245 go to exit; 246 247 ItoC: entry; 248 249 /* convert an integer to a one character string*/ 250 251 stack = addrel(stack_ptr, -2); 252 myname = fn_ItoC; 253 argno = 1; 254 call getnum; 255 256 call lisp_alloc_(2, stack -> temp(1)); 257 stack -> temp_type(1) = String; 258 stack -> temp_ptr(1) -> lisp_string.string_length = 1; 259 unspec(substr(stack -> temp_ptr(1) -> lisp_string.string, 1, 1)) = 260 bit(fixed(num, 9), 9); /* make character */ 261 go to exit; 262 263 CtoI: entry; 264 265 /* convert the first character of a string to an integer */ 266 267 stack = addrel(stack_ptr, -2); 268 myname = fn_CtoI; 269 argno = 1; 270 call getstring; 271 if argp -> lisp_string.string_length = 0 then num = 0; 272 else num = fixed(unspec(substr(argp -> lisp_string.string, 1, 1))); 273 go to retnum; 274 275 1 1 /***** BEGIN INCLUDE FILE lisp_string_fmt.incl.pl1 ***** 1 2* describes format of storage for lisp 1 3* character strings. 1 4* D. Reed 4/1/71 */ 1 5 1 6 dcl 1 lisp_string based aligned, 1 7 2 string_length fixed bin, 1 8 2 string char(1 refer(string_length)); 1 9 1 10 /***** END INCLUDE FILE lisp_string_fmt.incl.pl1 */ 276 2 1 /* Include file lisp_atom_fmt.incl.pl1; 2 2* describes internal format of atoms in the lisp system 2 3* D.Reed 4/1/71 */ 2 4 2 5 dcl 1 atom aligned based, /* overlay for atom fomat */ 2 6 2 value fixed bin(71), /* atom's value */ 2 7 2 plist fixed bin(71), /* property list */ 2 8 2 pnamel fixed bin, /* length of print name */ 2 9 2 pname char(1 refer(pnamel)), /* print name of atom */ 2 10 2 11 1 atom_ptrs based aligned, /* for use of plist and value of atom as ptrs */ 2 12 2 value ptr, 2 13 2 plist ptr, 2 14 2 15 1 atom_double_words based aligned, /* overlay for atom pointer checking */ 2 16 2 value bit(72), 2 17 2 plist bit(72); 2 18 2 19 /* end of include file lisp_atom_fmt.incl.pl1 */ 277 3 1 /* Include file lisp_ptr_fmt.incl.pl1; 3 2* describes the format of lisp pointers as 3 3* a bit string overlay on the double word ITS pair 3 4* which allows lisp to access some unused bits in 3 5* the standard ITS pointer format. It should be noted that 3 6* this is somewhat of a kludge, since 3 7* it is quite machine dependent. However, to store type 3 8* fields in the pointer, saves 2 words in each cons, 3 9* plus some efficiency problems. 3 10* 3 11* D.Reed 4/1/71 */ 3 12 /* modified to move type field to other half of ptr */ 3 13 /* D.Reed 5/31/72 */ 3 14 3 15 3 16 dcl based_ptr ptr aligned based; /* for dealing with lisp values as pointers */ 3 17 dcl lisp_ptr_type bit(36) aligned based, /* for more efficient checking of type bits */ 3 18 1 lisp_ptr based aligned, /* structure of double word pointer in lisp */ 3 19 2 segno bit(18) unaligned, /* segment number pointed to by pointer */ 3 20 2 ringnum bit(3) unaligned, /* ring mumber for validation */ 3 21 2 type bit(9) unaligned, /* type field */ 3 22 2 itsmod bit(6) unaligned, 3 23 2 offset fixed bin(17) unaligned, /* offset in segment of object pointed to */ 3 24 2 chain bit(18) unaligned, /* normally 0, but may be set to chain pointers together */ 3 25 3 26 /* manifest constant strings for testing above type field */ 3 27 3 28 ( 3 29 Cons init("000000000"b), /* a pointer to a list has a zero type field */ 3 30 Fixed init("100000000"b), /* a fixed point number, stored in second word of the ptr */ 3 31 Float init("010000000"b), /* a floating number, also stored in the second word of the ptr */ 3 32 Atsym init("001000000"b), /* this bit on means a ptr to an atomic symbol */ 3 33 Atomic init("111111111"b), /* any bit on means an atomic data type */ 3 34 Bignum init("000001000"b), /* a multiple-precision number */ 3 35 Bigfix init("000001000"b), /* a fixed point bignum (only kind for now) */ 3 36 Numeric init("110000000"b), /* either type immediate number. Both bits on 3 37* means a special internal uncollectable weird object */ 3 38 Uncollectable init("110000000"b), /* not looked through by garbage collector */ 3 39 String init("000100000"b), /* pointer to lisp character string - length word, chars */ 3 40 Subr init("000010000"b), /* pointer to compiled (or builtin) subroutine (linkage) code */ 3 41 System_Subr init("000000100"b), /* Subr bit must be on too, indicates ptr into lisp_subr_tv_ */ 3 42 Array init("000000010"b), /* Subr bit must be on too, indicates ptr to a lisp array */ 3 43 File init("000000001"b) /* pointer to a file object (iochan block) */ 3 44 ) bit(9) static, 3 45 3 46 /* 36 bit manifest constant strings for testing lisp_ptr_type */ 3 47 3 48 3 49 ( 3 50 Cons36 init("000000000000000000000000000000"b), 3 51 Fixed36 init("000000000000000000000100000000"b), 3 52 Float36 init("000000000000000000000010000000"b), 3 53 Atsym36 init("000000000000000000000001000000"b), 3 54 Atomic36 init("000000000000000000000111111100"b), 3 55 Bignum36 init("000000000000000000000000001000"b), 3 56 System_Subr36 3 57 init("000000000000000000000000000100"b), 3 58 Bigfix36 init("000000000000000000000000001000"b), 3 59 Numeric36 init("000000000000000000000110000000"b), /* does not check for bignum */ 3 60 NotConsOrAtsym36 3 61 init("000000000000000000000110111111"b), 3 62 SubrNumeric36 3 63 init("000000000000000000000110010000"b), /* used in garbage collector, for quick check */ 3 64 String36 init("000000000000000000000000100000"b), 3 65 Subr36 init("000000000000000000000000010000"b), 3 66 File36 init("000000000000000000000000000001"b), 3 67 Array36 init("000000000000000000000000000010"b)) bit(36) aligned static, 3 68 3 69 /* undefined pointer value is double word of zeros */ 3 70 3 71 Undefined bit(72) static init(""b); 3 72 3 73 /* end of include file lisp_ptr_fmt.incl.pl1 */ 278 4 1 /* Include file lisp_common_vars.incl.pl1; 4 2* describes the external static variables which may be referenced 4 3* by lisp routines. 4 4* D. Reed 4/1/71 */ 4 5 4 6 dcl 1 lisp_static_vars_$lisp_static_vars_ external, 4 7 2 cclist_ptr ptr, /* pointer to list of constants kept 4 8* by compiled programs */ 4 9 2 garbage_collect_soon bit(1) aligned, /* if this is on we should garbage collect soon */ 4 10 4 11 lisp_static_vars_$err_recp ptr ext aligned, /* pointer to error data */ 4 12 err_recp ptr defined (lisp_static_vars_$err_recp), 4 13 eval_frame ptr defined (lisp_static_vars_$eval_frame), /* info kept by eval if *rset t */ 4 14 lisp_static_vars_$eval_frame ptr ext static, 4 15 lisp_static_vars_$prog_frame ptr ext aligned, 4 16 lisp_static_vars_$err_frame ptr ext aligned, 4 17 lisp_static_vars_$catch_frame ptr ext aligned, 4 18 lisp_static_vars_$unwp_frame ptr ext aligned, 4 19 lisp_static_vars_$stack_ptr ptr ext aligned, 4 20 lisp_static_vars_$t_atom fixed bin(71) ext aligned, 4 21 lisp_static_vars_$top_level label ext, /* top level read_eval_print loop */ 4 22 lisp_static_vars_$unmkd_ptr ptr ext aligned, 4 23 lisp_static_vars_$binding_top ptr ext aligned, 4 24 lisp_static_vars_$obarray fixed bin(71) aligned ext, 4 25 obarray fixed bin(71) defined (lisp_static_vars_$obarray), 4 26 lisp_static_vars_$array_atom fixed bin(71) aligned ext, 4 27 array_atom fixed bin(71) defined (lisp_static_vars_$array_atom), 4 28 binding_top ptr defined (lisp_static_vars_$binding_top), 4 29 unmkd_ptr ptr defined (lisp_static_vars_$unmkd_ptr), 4 30 stack_ptr ptr defined (lisp_static_vars_$stack_ptr), 4 31 lisp_static_vars_$nil ext static fixed bin(71) aligned, 4 32 nil fixed bin(71) defined (lisp_static_vars_$nil), 4 33 lisp_static_vars_$tty_input_chan ext static ptr, /* used by the reader */ 4 34 lisp_static_vars_$tty_output_chan ext static ptr, /*used by print*/ 4 35 tty_input_chan ptr def (lisp_static_vars_$tty_input_chan), 4 36 tty_output_chan ptr def (lisp_static_vars_$tty_output_chan), 4 37 lisp_static_vars_$iochan_list external pointer, /* list of all open iochans */ 4 38 nil_ptr ptr based(addr(lisp_static_vars_$nil)) aligned, 4 39 prog_frame ptr def (lisp_static_vars_$prog_frame), /* 3 ptrs for use of lisp_prog_fns_ */ 4 40 err_frame ptr def (lisp_static_vars_$err_frame), /* they point out frames in unmkd pdl */ 4 41 catch_frame ptr def (lisp_static_vars_$catch_frame), 4 42 unwp_frame ptr def (lisp_static_vars_$unwp_frame), 4 43 t_atom_ptr ptr aligned based(addr(lisp_static_vars_$t_atom)), 4 44 t_atom fixed bin(71) defined (lisp_static_vars_$t_atom); /* pointer to atom t */ 4 45 dcl lisp_static_vars_$user_intr_array(20) fixed bin(71) aligned ext static, /* -> atoms whose values are intr service functions */ 4 46 user_intr_array (20) fixed bin(71) aligned def (lisp_static_vars_$user_intr_array), 4 47 lisp_static_vars_$star_rset fixed bin(71) aligned ext static, 4 48 star_rset fixed bin(71) aligned def (lisp_static_vars_$star_rset); 4 49 4 50 4 51 /* end include file lisp_common_vars.incl.pl1 */ 279 5 1 /* include file lisp_stack_fmt.incl.pl1 -- 5 2* describes the format of the pushdown list 5 3* used by the lisp evaluator and lisp subrs 5 4* for passing arguments, saving atom bindings, 5 5* and as temporaries */ 5 6 5 7 dcl 5 8 temp(10000) fixed bin(71) aligned based, 5 9 5 10 temp_ptr(10000) ptr aligned based, 5 11 1 push_down_list_ptr_types(10000) based aligned, 5 12 2 junk bit(21) unaligned, 5 13 2 temp_type bit(9) unaligned, 5 14 2 more_junk bit(42) unaligned, 5 15 5 16 1 pdl_ptr_types36(10000) based aligned, 5 17 2 temp_type36 bit(36), 5 18 2 junk bit(36), 5 19 5 20 1 binding_block aligned based, 5 21 2 top_block bit(18) unaligned, 5 22 2 bot_block bit(18) unaligned, /* these two are rel pointers into the marked PDL */ 5 23 2 back_ptr bit(18) unaligned, /* relative pointer into unmarked PDL for last binding block. */ 5 24 2 rev_ptr bit(18) unaligned, /* relative pointer to reversal bb which reversed this one, init to 0 */ 5 25 5 26 1 bindings(10000) based aligned, /* format fof bindings on stack */ 5 27 2 old_val fixed bin(71) aligned, 5 28 2 atom fixed bin(71) aligned; 5 29 5 30 5 31 5 32 /* end include file lisp_stack_fmt.incl.pl1 */ 280 6 1 6 2 /* BEGIN INCLUDE FILE lisp_error_codes.incl.pl1 */ 6 3 6 4 /* This contains codes to be stored on the unmkd pdl before calling 6 5* lisp_error_. These codes, at ab|-2,x7, are used by lisp_error_ 6 6* as an index into lisp_error_table_. */ 6 7 6 8 dcl ( 6 9 undefined_atom init(100), /* - correctable */ 6 10 undefined_function init(101), /* - correctable */ 6 11 too_many_args init(102), /* uncorrectable */ 6 12 too_few_args init(103), /* .. */ 6 13 file_system_error init(104), /* (obsolete) */ 6 14 bad_argument init(105), /* uncorrectable arg reject */ 6 15 undefined_subr init(106), 6 16 bad_function init(107), /* "bad functional form" */ 6 17 bad_bv init(108), /* attempt to bind non-variable */ 6 18 unseen_go_tag init(109), /* correctable -> unevaled new tag */ 6 19 throw_to_no_catch init(110), /* .. */ 6 20 nonfixedarg init(111), /* correctable */ 6 21 parenmissing init(112), /* uncorr reader error */ 6 22 doterror init(113), /* .. */ 6 23 illobj init(114), /* .. */ 6 24 badmacro init(115), /* .. */ 6 25 shortreadlist init(116), /* .. */ 6 26 badreadlist init(117), /* .. */ 6 27 array_bound_error init(118), /* corr -> (array sub1 sub2...) */ 6 28 car_cdr_error init(119), /* uncorr - car or cdr of number */ 6 29 bad_arg_correctable init(120), /* correctable arg reject */ 6 30 bad_prog_op init(121), /* uncorr fail-act: go or return */ 6 31 no_lexpr init(122), /* uncorr fail-act: args or setarg */ 6 32 wrong_no_args init(123), /* correctable wna -> new expr value */ 6 33 bad_ibase init(124), /* corr */ 6 34 bad_base init(125), /* corr */ 6 35 bad_input_source init(126), /* corr - retry i/o */ 6 36 bad_output_dest init(127), /* .. */ 6 37 nihil_ex_nihile init(128), /* uncorr - attempt to setq nil */ 6 38 not_pdl_ptr init(131), /* corr arg reject - for pdl ptr args */ 6 39 bad_f_fcn init(134), /* compiled call to fsubr with evaled args */ 6 40 overflow_err init(135), /* arithmetic overflow. */ 6 41 mismatch_super_parens init(136), /* uncorr reader error */ 6 42 no_left_super_paren init(137), /* .. */ 6 43 flonum_too_big init(138), /* .. */ 6 44 quoterror init(139), /* .. */ 6 45 badreadtable init(140), /* .. */ 6 46 badobarray init(141), /* .. */ 6 47 atan_0_0_err init(142), /* (atan 0 0) doesn't work */ 6 48 unable_to_float init(143), /* corr arg reject - (float x) */ 6 49 division_by_zero init(144), /* uncorr (should really be corr) */ 6 50 eof_in_object init(145), /* corr fail-act -> keep reading anyway */ 6 51 cant_filepos init(146), /* corr fail-act -> new expr value */ 6 52 filepos_oob init(147), /* .. */ 6 53 file_sys_fun_err init(148), /* corr f.s. err -> new expr value */ 6 54 stars_left_in_name init(149), /* .. */ 6 55 io_wrong_direction init(150), /* .. */ 6 56 file_is_closed init(151), /* .. */ 6 57 reopen_inconsistent init(152), /* .. */ 6 58 bad_entry_name init(153), /* .. */ 6 59 bad_do_format init(154), /* bad do format in interp. */ 6 60 not_an_array init(155), /* bad array-type arg */ 6 61 not_alpha_array init(156), /* bad all-alphabetic array */ 6 62 include_file_error init(157), /* %include barfed */ 6 63 stack_loss_error init(158), /* stack overflew */ 6 64 underflow_fault init(159), 6 65 zerodivide_fault init(160), 6 66 bad_array_subscript init(161), 6 67 store_not_allowed init(162), 6 68 dead_array_reference init(163), 6 69 cant_subscript_readtable init(164), 6 70 not_same_type init(165), 6 71 special_array_type init(166), 6 72 array_too_big init(167), 6 73 argument_must_be_array init(168), 6 74 store_function_misused init(169) 6 75 ) fixed bin static; 6 76 6 77 /* END INCLUDE FILE lisp_error_codes.incl.pl1 */ 281 7 1 7 2 /* BEGIN INCLUDE FILE lisp_name_codes.incl.pl1 */ 7 3 7 4 /* These are codes for the names of functions which are stored into ab|-1,x7 before 7 5* calling lisp_error_ for a bad_argument or bad_arg_correctable error. They 7 6* are used so that the name of the function which is rejecting its argument 7 7* can be printed. Please note that all these codes are negative. */ 7 8 7 9 dcl ( 7 10 fn_do init (-10), 7 11 fn_arg init (-11), 7 12 fn_setarg init (-12), 7 13 fn_status init (-13), 7 14 fn_sstatus init (-14), 7 15 fn_errprint init (-15), 7 16 fn_errframe init (-16), 7 17 fn_evalframe init (-17), 7 18 fn_defaultf init (-18), 7 19 fn_tyo init (-22), 7 20 fn_ascii init (-23), 7 21 fn_rplaca init (-24), 7 22 fn_definedp init (-25), 7 23 fn_setq init (-26), 7 24 fn_set init (-27), 7 25 fn_delete init (-28), 7 26 fn_delq init (-29), 7 27 fn_stringlength init (-30), 7 28 fn_catenate init (-31), 7 29 fn_array init (-32), 7 30 fn_substr init (-33), 7 31 fn_index init (-34), 7 32 fn_get_pname init (-35), 7 33 fn_make_atom init (-36), 7 34 fn_ItoC init (-37), 7 35 fn_CtoI init (-38), 7 36 fn_defsubr init (-39), 7 37 fn_star_array init (-40), 7 38 fn_args init (-41), 7 39 fn_sysp init (-42), 7 40 fn_get init (-43), 7 41 fn_getl init (-44), 7 42 fn_putprop init (-45), 7 43 fn_remprop init (-46), 7 44 fn_save init (-47), 7 45 fn_add1 init (-48), 7 46 fn_sub1 init (-49), 7 47 fn_greaterp init (-50), 7 48 fn_lessp init (-51), 7 49 fn_minus init (-52), 7 50 fn_plus init (-53), 7 51 fn_times init (-54), 7 52 fn_difference init (-55), 7 53 fn_quotient init (-56), 7 54 fn_abs init (-57), 7 55 fn_expt init (-58), 7 56 fn_boole init (-59), 7 57 fn_rot init (-60), 7 58 fn_lsh init (-61), 7 59 fn_signp init (-62), 7 60 fn_fix init (-63), 7 61 fn_float init (-64), 7 62 fn_remainder init (-65), 7 63 fn_max init (-66), 7 64 fn_min init (-67), 7 65 fn_add1_fix init (-68), 7 66 fn_add1_flo init (-69), 7 67 fn_sub1_fix init (-70), 7 68 fn_sub1_flo init (-71), 7 69 fn_plus_fix init (-72), 7 70 fn_plus_flo init (-73), 7 71 fn_times_fix init (-74), 7 72 fn_times_flo init (-75), 7 73 fn_diff_fix init (-76), 7 74 fn_diff_flo init (-77), 7 75 fn_quot_fix init (-78), 7 76 fn_quot_flo init (-79), 7 77 fn_eval init (-80), 7 78 fn_apply init (-81), 7 79 fn_prog init (-82), 7 80 fn_errset init (-83), 7 81 fn_catch init (-84), 7 82 fn_throw init (-85), 7 83 fn_store init (-86), 7 84 fn_defun init (-87), 7 85 fn_baktrace init (-88), 7 86 fn_bltarray init (-89), 7 87 fn_star_rearray init (-90), 7 88 fn_gensym init (-91), 7 89 fn_makunbound init (-92), 7 90 fn_boundp init (-93), 7 91 fn_star_status init (-94), 7 92 fn_star_sstatus init (-95), 7 93 fn_freturn init (-96), 7 94 fn_cos init (-97), 7 95 fn_sin init (-98), 7 96 fn_exp init (-99), 7 97 fn_log init (-100), 7 98 fn_sqrt init (-101), 7 99 fn_isqrt init (-102), 7 100 fn_atan init (-103), 7 101 fn_sleep init (-104), 7 102 fn_oddp init (-105), 7 103 fn_tyipeek init (-106), 7 104 fn_alarmclock init (-107), 7 105 fn_plusp init (-108), 7 106 fn_minusp init (-109), 7 107 fn_ls init (-110), 7 108 fn_eql init (-111), 7 109 fn_gt init (-112), 7 110 fn_alphalessp init (-113), 7 111 fn_samepnamep init (-114), 7 112 fn_getchar init (-115), 7 113 fn_opena init (-116), 7 114 fn_sxhash init (-117), 7 115 fn_gcd init (-118), 7 116 fn_allfiles init (-119), 7 117 fn_chrct init (-120), 7 118 fn_close init (-121), 7 119 fn_deletef init (-122), 7 120 fn_eoffn init (-123), 7 121 fn_filepos init (-124), 7 122 fn_inpush init (-125), 7 123 fn_linel init (-126), 7 124 fn_mergef init (-127), 7 125 fn_namelist init (-128), 7 126 fn_names init (-129), 7 127 fn_namestring init (-130), 7 128 fn_openi init (-131), 7 129 fn_openo init (-132), 7 130 fn_prin1 init (-133), 7 131 fn_princ init (-134), 7 132 fn_print init (-135), 7 133 fn_read init (-136), 7 134 fn_readch init (-137), 7 135 fn_readstring init (-138), 7 136 fn_rename init (-139), 7 137 fn_shortnamestring init (-140), 7 138 fn_tyi init (-141), 7 139 fn_setsyntax init (-142), 7 140 fn_cursorpos init (-143), 7 141 fn_force_output init (-144), 7 142 fn_clear_input init (-145), 7 143 fn_random init (-146), 7 144 fn_haulong init (-147), 7 145 fn_haipart init (-148), 7 146 fn_cline init (-149), 7 147 fn_fillarray init (-150), 7 148 fn_listarray init (-151), 7 149 fn_sort init (-152), 7 150 fn_sortcar init (-153), 7 151 fn_zerop init (-154), 7 152 fn_listify init (-155), 7 153 fn_charpos init (-156), 7 154 fn_pagel init (-157), 7 155 fn_linenum init (-158), 7 156 fn_pagenum init (-159), 7 157 fn_endpagefn init (-160), 7 158 fn_arraydims init (-161), 7 159 fn_loadarrays init (-162), 7 160 fn_dumparrays init (-163), 7 161 fn_expt_fix init (-164), 7 162 fn_expt_flo init (-165), 7 163 fn_nointerrupt init (-166), 7 164 fn_open init (-167), 7 165 fn_in init (-168), 7 166 fn_out init (-169), 7 167 fn_truename init (-170), 7 168 fn_ifix init (-171), 7 169 fn_fsc init (-172), 7 170 fn_progv init (-173), 7 171 fn_mapatoms init (-174), 7 172 fn_unwind_protect init (-175), 7 173 fn_eval_when init (-176), 7 174 fn_read_from_string init (-177), 7 175 fn_displace init (-178), 7 176 fn_nth init (-179), 7 177 fn_nthcdr init (-180), 7 178 fn_includef init (-181) 7 179 ) fixed bin static; 7 180 7 181 /* END INCLUDE FILE lisp_name_codes.incl.pl1 */ 282 8 1 /* Include file lisp_cons_fmt.incl.pl1; 8 2* defines the format for a cons within the lisp system 8 3* D.Reed 4/1/71 */ 8 4 8 5 dcl consptr ptr, 8 6 1 cons aligned based (consptr), /* structure defining format for cons */ 8 7 2 car fixed bin(71), 8 8 2 cdr fixed bin(71), 8 9 8 10 1 cons_ptrs aligned based (consptr), /* for using car and cdr as pointers */ 8 11 2 car ptr, 8 12 2 cdr ptr, 8 13 8 14 8 15 1 cons_types aligned based (consptr), /* structure for extracting types out of cons */ 8 16 2 padding bit(21) unaligned, 8 17 2 car bit(9) unaligned, 8 18 2 padding2 bit(63) unaligned, 8 19 2 cdr bit(9) unaligned, 8 20 2 padend bit(42) unaligned; 8 21 8 22 dcl 1 cons_types36 aligned based, 8 23 2 car bit(36), 8 24 2 pada bit(36), 8 25 2 cdr bit(36), 8 26 2 padd bit(36); 8 27 8 28 8 29 /* end include file lisp_cons_fmt.incl.pl1 */ 283 9 1 /* lisp number format -- overlaid on standard its pointer. */ 9 2 9 3 9 4 dcl 1 fixnum_fmt based aligned, 9 5 2 type_info bit(36) aligned, 9 6 2 fixedb fixed bin, 9 7 9 8 1 flonum_fmt based aligned, 9 9 2 type_info bit(36) aligned, 9 10 2 floatb float bin, 9 11 9 12 fixnum_type bit(36) aligned static init("000000000000000000000100000000100111"b), 9 13 flonum_type bit(36) aligned static init("000000000000000000000010000000100111"b); 9 14 9 15 /* end of lisp number format */ 9 16 284 285 286 287 dcl (addr, addrel, length, index, substr, unspec, min, fixed, bit) builtin; 288 289 end lisp_char_fns_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 06/29/83 1542.2 lisp_char_fns_.pl1 >special_ldd>on>06/27/83>lisp_char_fns_.pl1 276 1 03/27/82 0436.9 lisp_string_fmt.incl.pl1 >ldd>include>lisp_string_fmt.incl.pl1 277 2 03/27/82 0437.1 lisp_atom_fmt.incl.pl1 >ldd>include>lisp_atom_fmt.incl.pl1 278 3 03/27/82 0437.0 lisp_ptr_fmt.incl.pl1 >ldd>include>lisp_ptr_fmt.incl.pl1 279 4 03/27/82 0437.0 lisp_common_vars.incl.pl1 >ldd>include>lisp_common_vars.incl.pl1 280 5 03/27/82 0437.0 lisp_stack_fmt.incl.pl1 >ldd>include>lisp_stack_fmt.incl.pl1 281 6 03/27/82 0437.0 lisp_error_codes.incl.pl1 >ldd>include>lisp_error_codes.incl.pl1 282 7 06/29/83 1425.3 lisp_name_codes.incl.pl1 >ldd>include>lisp_name_codes.incl.pl1 283 8 03/27/82 0437.0 lisp_cons_fmt.incl.pl1 >ldd>include>lisp_cons_fmt.incl.pl1 284 9 03/27/82 0437.0 lisp_nums.incl.pl1 >ldd>include>lisp_nums.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) Array internal static bit(9) initial unaligned dcl 3-17 Array36 internal static bit(36) initial dcl 3-17 Atomic internal static bit(9) initial unaligned dcl 3-17 Atomic36 internal static bit(36) initial dcl 3-17 Atsym internal static bit(9) initial unaligned dcl 3-17 Atsym36 constant bit(36) initial dcl 3-17 ref 91 Bigfix internal static bit(9) initial unaligned dcl 3-17 Bigfix36 internal static bit(36) initial dcl 3-17 Bignum internal static bit(9) initial unaligned dcl 3-17 Bignum36 internal static bit(36) initial dcl 3-17 Cons internal static bit(9) initial unaligned dcl 3-17 Cons36 internal static bit(36) initial dcl 3-17 CtoI 000655 constant entry external dcl 263 File internal static bit(9) initial unaligned dcl 3-17 File36 internal static bit(36) initial dcl 3-17 Fixed internal static bit(9) initial unaligned dcl 3-17 Fixed36 internal static bit(36) initial dcl 3-17 Float internal static bit(9) initial unaligned dcl 3-17 Float36 internal static bit(36) initial dcl 3-17 Index 000413 constant entry external dcl 194 ItoC 000603 constant entry external dcl 247 NotConsOrAtsym36 internal static bit(36) initial dcl 3-17 Numeric internal static bit(9) initial unaligned dcl 3-17 Numeric36 internal static bit(36) initial dcl 3-17 String constant bit(9) initial unaligned dcl 3-17 ref 62 161 190 257 String36 constant bit(36) initial dcl 3-17 ref 87 231 Subr internal static bit(9) initial unaligned dcl 3-17 Subr36 internal static bit(36) initial dcl 3-17 SubrNumeric36 internal static bit(36) initial dcl 3-17 Substr 000275 constant entry external dcl 166 Substr2 000174 constant entry external dcl 136 System_Subr internal static bit(9) initial unaligned dcl 3-17 System_Subr36 internal static bit(36) initial dcl 3-17 Uncollectable internal static bit(9) initial unaligned dcl 3-17 Undefined internal static bit(72) initial unaligned dcl 3-17 addr builtin function dcl 287 ref 34 92 103 121 123 126 128 224 addrel builtin function dcl 287 ref 26 39 41 106 141 198 219 238 251 267 argno 000103 automatic fixed bin(17,0) dcl 8 set ref 27* 54* 68* 87 88 91 92 104 110 121 123 126 128 144* 149* 159* 174* 177* 179* 187* 201* 204* 209* 221* 227* 240* 253* 269* argp 000104 automatic pointer dcl 8 set ref 31 56 70 71 88* 92* 152 163 185 185 191 191 206 212 223 229 230 243 271 272 argp2 000106 automatic pointer dcl 8 set ref 206* 212 argument_must_be_array internal static fixed bin(17,0) initial dcl 6-8 array_atom defined fixed bin(71,0) dcl 4-6 array_bound_error internal static fixed bin(17,0) initial dcl 6-8 array_too_big internal static fixed bin(17,0) initial dcl 6-8 atan_0_0_err internal static fixed bin(17,0) initial dcl 6-8 atom based structure level 1 dcl 2-5 atom_double_words based structure level 1 dcl 2-5 atom_ptrs based structure level 1 dcl 2-5 bad_arg_correctable constant fixed bin(17,0) initial dcl 6-8 ref 107 bad_argument internal static fixed bin(17,0) initial dcl 6-8 bad_array_subscript internal static fixed bin(17,0) initial dcl 6-8 bad_base internal static fixed bin(17,0) initial dcl 6-8 bad_bv internal static fixed bin(17,0) initial dcl 6-8 bad_do_format internal static fixed bin(17,0) initial dcl 6-8 bad_entry_name internal static fixed bin(17,0) initial dcl 6-8 bad_f_fcn internal static fixed bin(17,0) initial dcl 6-8 bad_function internal static fixed bin(17,0) initial dcl 6-8 bad_ibase internal static fixed bin(17,0) initial dcl 6-8 bad_input_source internal static fixed bin(17,0) initial dcl 6-8 bad_output_dest internal static fixed bin(17,0) initial dcl 6-8 bad_prog_op internal static fixed bin(17,0) initial dcl 6-8 badmacro internal static fixed bin(17,0) initial dcl 6-8 badobarray internal static fixed bin(17,0) initial dcl 6-8 badreadlist internal static fixed bin(17,0) initial dcl 6-8 badreadtable internal static fixed bin(17,0) initial dcl 6-8 barf 001011 constant entry internal dcl 98 ref 95 131 based_ptr based pointer dcl 3-16 binding_block based structure level 1 dcl 5-7 binding_top defined pointer dcl 4-6 bindings based structure array level 1 dcl 5-7 bit builtin function dcl 287 ref 259 cant_filepos internal static fixed bin(17,0) initial dcl 6-8 cant_subscript_readtable internal static fixed bin(17,0) initial dcl 6-8 car_cdr_error internal static fixed bin(17,0) initial dcl 6-8 catch_frame defined pointer dcl 4-6 catenate 000045 constant entry external dcl 43 cons based structure level 1 dcl 8-5 cons_ptrs based structure level 1 dcl 8-5 cons_types based structure level 1 dcl 8-5 cons_types36 based structure level 1 dcl 8-22 consptr automatic pointer dcl 8-5 dead_array_reference internal static fixed bin(17,0) initial dcl 6-8 divide builtin function ref 49 61 61 158 158 186 186 226 226 division_by_zero internal static fixed bin(17,0) initial dcl 6-8 doterror internal static fixed bin(17,0) initial dcl 6-8 eof_in_object internal static fixed bin(17,0) initial dcl 6-8 ercode based fixed bin(35,0) array dcl 8 set ref 107* 108* err_frame defined pointer dcl 4-6 err_recp defined pointer dcl 4-6 eval_frame defined pointer dcl 4-6 exit 000037 constant label dcl 34 ref 78 164 192 232 245 261 file_is_closed internal static fixed bin(17,0) initial dcl 6-8 file_sys_fun_err internal static fixed bin(17,0) initial dcl 6-8 file_system_error internal static fixed bin(17,0) initial dcl 6-8 filepos_oob internal static fixed bin(17,0) initial dcl 6-8 fixed builtin function dcl 287 ref 128 259 272 fixedb 1 based fixed bin(17,0) level 2 dcl 9-4 set ref 33* 40 123 fixnum_fmt based structure level 1 dcl 9-4 fixnum_type constant bit(36) initial dcl 9-4 ref 32 121 floatb 1 based float bin(27) level 2 dcl 9-4 ref 128 flonum_fmt based structure level 1 dcl 9-4 flonum_too_big internal static fixed bin(17,0) initial dcl 6-8 flonum_type constant bit(36) initial dcl 9-4 ref 126 fn_CtoI constant fixed bin(17,0) initial dcl 7-9 ref 268 fn_ItoC constant fixed bin(17,0) initial dcl 7-9 ref 252 fn_abs internal static fixed bin(17,0) initial dcl 7-9 fn_add1 internal static fixed bin(17,0) initial dcl 7-9 fn_add1_fix internal static fixed bin(17,0) initial dcl 7-9 fn_add1_flo internal static fixed bin(17,0) initial dcl 7-9 fn_alarmclock internal static fixed bin(17,0) initial dcl 7-9 fn_allfiles internal static fixed bin(17,0) initial dcl 7-9 fn_alphalessp internal static fixed bin(17,0) initial dcl 7-9 fn_apply internal static fixed bin(17,0) initial dcl 7-9 fn_arg internal static fixed bin(17,0) initial dcl 7-9 fn_args internal static fixed bin(17,0) initial dcl 7-9 fn_array internal static fixed bin(17,0) initial dcl 7-9 fn_arraydims internal static fixed bin(17,0) initial dcl 7-9 fn_ascii internal static fixed bin(17,0) initial dcl 7-9 fn_atan internal static fixed bin(17,0) initial dcl 7-9 fn_baktrace internal static fixed bin(17,0) initial dcl 7-9 fn_bltarray internal static fixed bin(17,0) initial dcl 7-9 fn_boole internal static fixed bin(17,0) initial dcl 7-9 fn_boundp internal static fixed bin(17,0) initial dcl 7-9 fn_catch internal static fixed bin(17,0) initial dcl 7-9 fn_catenate constant fixed bin(17,0) initial dcl 7-9 ref 53 fn_charpos internal static fixed bin(17,0) initial dcl 7-9 fn_chrct internal static fixed bin(17,0) initial dcl 7-9 fn_clear_input internal static fixed bin(17,0) initial dcl 7-9 fn_cline internal static fixed bin(17,0) initial dcl 7-9 fn_close internal static fixed bin(17,0) initial dcl 7-9 fn_cos internal static fixed bin(17,0) initial dcl 7-9 fn_cursorpos internal static fixed bin(17,0) initial dcl 7-9 fn_defaultf internal static fixed bin(17,0) initial dcl 7-9 fn_definedp internal static fixed bin(17,0) initial dcl 7-9 fn_defsubr internal static fixed bin(17,0) initial dcl 7-9 fn_defun internal static fixed bin(17,0) initial dcl 7-9 fn_delete internal static fixed bin(17,0) initial dcl 7-9 fn_deletef internal static fixed bin(17,0) initial dcl 7-9 fn_delq internal static fixed bin(17,0) initial dcl 7-9 fn_diff_fix internal static fixed bin(17,0) initial dcl 7-9 fn_diff_flo internal static fixed bin(17,0) initial dcl 7-9 fn_difference internal static fixed bin(17,0) initial dcl 7-9 fn_displace internal static fixed bin(17,0) initial dcl 7-9 fn_do internal static fixed bin(17,0) initial dcl 7-9 fn_dumparrays internal static fixed bin(17,0) initial dcl 7-9 fn_endpagefn internal static fixed bin(17,0) initial dcl 7-9 fn_eoffn internal static fixed bin(17,0) initial dcl 7-9 fn_eql internal static fixed bin(17,0) initial dcl 7-9 fn_errframe internal static fixed bin(17,0) initial dcl 7-9 fn_errprint internal static fixed bin(17,0) initial dcl 7-9 fn_errset internal static fixed bin(17,0) initial dcl 7-9 fn_eval internal static fixed bin(17,0) initial dcl 7-9 fn_eval_when internal static fixed bin(17,0) initial dcl 7-9 fn_evalframe internal static fixed bin(17,0) initial dcl 7-9 fn_exp internal static fixed bin(17,0) initial dcl 7-9 fn_expt internal static fixed bin(17,0) initial dcl 7-9 fn_expt_fix internal static fixed bin(17,0) initial dcl 7-9 fn_expt_flo internal static fixed bin(17,0) initial dcl 7-9 fn_filepos internal static fixed bin(17,0) initial dcl 7-9 fn_fillarray internal static fixed bin(17,0) initial dcl 7-9 fn_fix internal static fixed bin(17,0) initial dcl 7-9 fn_float internal static fixed bin(17,0) initial dcl 7-9 fn_force_output internal static fixed bin(17,0) initial dcl 7-9 fn_freturn internal static fixed bin(17,0) initial dcl 7-9 fn_fsc internal static fixed bin(17,0) initial dcl 7-9 fn_gcd internal static fixed bin(17,0) initial dcl 7-9 fn_gensym internal static fixed bin(17,0) initial dcl 7-9 fn_get internal static fixed bin(17,0) initial dcl 7-9 fn_get_pname constant fixed bin(17,0) initial dcl 7-9 ref 220 fn_getchar internal static fixed bin(17,0) initial dcl 7-9 fn_getl internal static fixed bin(17,0) initial dcl 7-9 fn_greaterp internal static fixed bin(17,0) initial dcl 7-9 fn_gt internal static fixed bin(17,0) initial dcl 7-9 fn_haipart internal static fixed bin(17,0) initial dcl 7-9 fn_haulong internal static fixed bin(17,0) initial dcl 7-9 fn_ifix internal static fixed bin(17,0) initial dcl 7-9 fn_in internal static fixed bin(17,0) initial dcl 7-9 fn_includef internal static fixed bin(17,0) initial dcl 7-9 fn_index constant fixed bin(17,0) initial dcl 7-9 ref 199 fn_inpush internal static fixed bin(17,0) initial dcl 7-9 fn_isqrt internal static fixed bin(17,0) initial dcl 7-9 fn_lessp internal static fixed bin(17,0) initial dcl 7-9 fn_linel internal static fixed bin(17,0) initial dcl 7-9 fn_linenum internal static fixed bin(17,0) initial dcl 7-9 fn_listarray internal static fixed bin(17,0) initial dcl 7-9 fn_listify internal static fixed bin(17,0) initial dcl 7-9 fn_loadarrays internal static fixed bin(17,0) initial dcl 7-9 fn_log internal static fixed bin(17,0) initial dcl 7-9 fn_ls internal static fixed bin(17,0) initial dcl 7-9 fn_lsh internal static fixed bin(17,0) initial dcl 7-9 fn_make_atom constant fixed bin(17,0) initial dcl 7-9 ref 239 fn_makunbound internal static fixed bin(17,0) initial dcl 7-9 fn_mapatoms internal static fixed bin(17,0) initial dcl 7-9 fn_max internal static fixed bin(17,0) initial dcl 7-9 fn_mergef internal static fixed bin(17,0) initial dcl 7-9 fn_min internal static fixed bin(17,0) initial dcl 7-9 fn_minus internal static fixed bin(17,0) initial dcl 7-9 fn_minusp internal static fixed bin(17,0) initial dcl 7-9 fn_namelist internal static fixed bin(17,0) initial dcl 7-9 fn_names internal static fixed bin(17,0) initial dcl 7-9 fn_namestring internal static fixed bin(17,0) initial dcl 7-9 fn_nointerrupt internal static fixed bin(17,0) initial dcl 7-9 fn_nth internal static fixed bin(17,0) initial dcl 7-9 fn_nthcdr internal static fixed bin(17,0) initial dcl 7-9 fn_oddp internal static fixed bin(17,0) initial dcl 7-9 fn_open internal static fixed bin(17,0) initial dcl 7-9 fn_opena internal static fixed bin(17,0) initial dcl 7-9 fn_openi internal static fixed bin(17,0) initial dcl 7-9 fn_openo internal static fixed bin(17,0) initial dcl 7-9 fn_out internal static fixed bin(17,0) initial dcl 7-9 fn_pagel internal static fixed bin(17,0) initial dcl 7-9 fn_pagenum internal static fixed bin(17,0) initial dcl 7-9 fn_plus internal static fixed bin(17,0) initial dcl 7-9 fn_plus_fix internal static fixed bin(17,0) initial dcl 7-9 fn_plus_flo internal static fixed bin(17,0) initial dcl 7-9 fn_plusp internal static fixed bin(17,0) initial dcl 7-9 fn_prin1 internal static fixed bin(17,0) initial dcl 7-9 fn_princ internal static fixed bin(17,0) initial dcl 7-9 fn_print internal static fixed bin(17,0) initial dcl 7-9 fn_prog internal static fixed bin(17,0) initial dcl 7-9 fn_progv internal static fixed bin(17,0) initial dcl 7-9 fn_putprop internal static fixed bin(17,0) initial dcl 7-9 fn_quot_fix internal static fixed bin(17,0) initial dcl 7-9 fn_quot_flo internal static fixed bin(17,0) initial dcl 7-9 fn_quotient internal static fixed bin(17,0) initial dcl 7-9 fn_random internal static fixed bin(17,0) initial dcl 7-9 fn_read internal static fixed bin(17,0) initial dcl 7-9 fn_read_from_string internal static fixed bin(17,0) initial dcl 7-9 fn_readch internal static fixed bin(17,0) initial dcl 7-9 fn_readstring internal static fixed bin(17,0) initial dcl 7-9 fn_remainder internal static fixed bin(17,0) initial dcl 7-9 fn_remprop internal static fixed bin(17,0) initial dcl 7-9 fn_rename internal static fixed bin(17,0) initial dcl 7-9 fn_rot internal static fixed bin(17,0) initial dcl 7-9 fn_rplaca internal static fixed bin(17,0) initial dcl 7-9 fn_samepnamep internal static fixed bin(17,0) initial dcl 7-9 fn_save internal static fixed bin(17,0) initial dcl 7-9 fn_set internal static fixed bin(17,0) initial dcl 7-9 fn_setarg internal static fixed bin(17,0) initial dcl 7-9 fn_setq internal static fixed bin(17,0) initial dcl 7-9 fn_setsyntax internal static fixed bin(17,0) initial dcl 7-9 fn_shortnamestring internal static fixed bin(17,0) initial dcl 7-9 fn_signp internal static fixed bin(17,0) initial dcl 7-9 fn_sin internal static fixed bin(17,0) initial dcl 7-9 fn_sleep internal static fixed bin(17,0) initial dcl 7-9 fn_sort internal static fixed bin(17,0) initial dcl 7-9 fn_sortcar internal static fixed bin(17,0) initial dcl 7-9 fn_sqrt internal static fixed bin(17,0) initial dcl 7-9 fn_sstatus internal static fixed bin(17,0) initial dcl 7-9 fn_star_array internal static fixed bin(17,0) initial dcl 7-9 fn_star_rearray internal static fixed bin(17,0) initial dcl 7-9 fn_star_sstatus internal static fixed bin(17,0) initial dcl 7-9 fn_star_status internal static fixed bin(17,0) initial dcl 7-9 fn_status internal static fixed bin(17,0) initial dcl 7-9 fn_store internal static fixed bin(17,0) initial dcl 7-9 fn_stringlength constant fixed bin(17,0) initial dcl 7-9 ref 28 fn_sub1 internal static fixed bin(17,0) initial dcl 7-9 fn_sub1_fix internal static fixed bin(17,0) initial dcl 7-9 fn_sub1_flo internal static fixed bin(17,0) initial dcl 7-9 fn_substr constant fixed bin(17,0) initial dcl 7-9 ref 142 171 fn_sxhash internal static fixed bin(17,0) initial dcl 7-9 fn_sysp internal static fixed bin(17,0) initial dcl 7-9 fn_throw internal static fixed bin(17,0) initial dcl 7-9 fn_times internal static fixed bin(17,0) initial dcl 7-9 fn_times_fix internal static fixed bin(17,0) initial dcl 7-9 fn_times_flo internal static fixed bin(17,0) initial dcl 7-9 fn_truename internal static fixed bin(17,0) initial dcl 7-9 fn_tyi internal static fixed bin(17,0) initial dcl 7-9 fn_tyipeek internal static fixed bin(17,0) initial dcl 7-9 fn_tyo internal static fixed bin(17,0) initial dcl 7-9 fn_unwind_protect internal static fixed bin(17,0) initial dcl 7-9 fn_zerop internal static fixed bin(17,0) initial dcl 7-9 get_pname 000455 constant entry external dcl 215 getnum 000753 constant entry internal dcl 117 ref 147 175 178 254 getstring 000720 constant entry internal dcl 82 ref 29 55 69 150 160 180 188 202 205 210 222 228 241 270 illobj internal static fixed bin(17,0) initial dcl 6-8 include_file_error internal static fixed bin(17,0) initial dcl 6-8 index builtin function dcl 287 ref 212 io_wrong_direction internal static fixed bin(17,0) initial dcl 6-8 length builtin function dcl 287 lisp_alloc_ 000012 constant entry external dcl 8 ref 61 158 186 226 256 lisp_char_fns_ 000003 constant entry external dcl 6 lisp_error_ 000010 constant entry external dcl 8 ref 109 lisp_get_atom_ 000014 constant entry external dcl 8 ref 243 lisp_ptr based structure level 1 dcl 3-17 lisp_ptr_type based bit(36) dcl 3-17 set ref 231* 231 lisp_static_vars_$array_atom external static fixed bin(71,0) dcl 4-6 lisp_static_vars_$binding_top external static pointer dcl 4-6 lisp_static_vars_$catch_frame external static pointer dcl 4-6 lisp_static_vars_$err_frame external static pointer dcl 4-6 lisp_static_vars_$err_recp external static pointer dcl 4-6 lisp_static_vars_$eval_frame external static pointer dcl 4-6 lisp_static_vars_$iochan_list external static pointer dcl 4-6 lisp_static_vars_$lisp_static_vars_ external static structure level 1 unaligned dcl 4-6 lisp_static_vars_$nil external static fixed bin(71,0) dcl 4-6 lisp_static_vars_$obarray external static fixed bin(71,0) dcl 4-6 lisp_static_vars_$prog_frame external static pointer dcl 4-6 lisp_static_vars_$stack_ptr 000016 external static pointer dcl 4-6 set ref 26 26 34* 34 39 39 102 102 103* 103 111* 111 141 141 198 198 219 219 224* 224 238 238 251 251 267 267 lisp_static_vars_$star_rset external static fixed bin(71,0) dcl 4-45 lisp_static_vars_$t_atom external static fixed bin(71,0) dcl 4-6 lisp_static_vars_$top_level external static label variable dcl 4-6 lisp_static_vars_$tty_input_chan external static pointer dcl 4-6 lisp_static_vars_$tty_output_chan external static pointer dcl 4-6 lisp_static_vars_$unmkd_ptr 000020 external static pointer dcl 4-6 set ref 105 105 106* 106 lisp_static_vars_$unwp_frame external static pointer dcl 4-6 lisp_static_vars_$user_intr_array external static fixed bin(71,0) array dcl 4-45 lisp_string based structure level 1 dcl 1-6 lsubr_prologue 000705 constant entry internal dcl 37 ref 47 170 make_atom 000541 constant entry external dcl 234 min builtin function dcl 287 ref 191 mismatch_super_parens internal static fixed bin(17,0) initial dcl 6-8 myname 000110 automatic fixed bin(35,0) dcl 8 set ref 28* 53* 108 142* 171* 199* 220* 239* 252* 268* nargs 000102 automatic fixed bin(17,0) dcl 8 set ref 40* 41 49* 49 54 61 62 63 68 71 77 172 nihil_ex_nihile internal static fixed bin(17,0) initial dcl 6-8 nil defined fixed bin(71,0) dcl 4-6 nil_ptr based pointer dcl 4-6 no_left_super_paren internal static fixed bin(17,0) initial dcl 6-8 no_lexpr internal static fixed bin(17,0) initial dcl 6-8 nonfixedarg internal static fixed bin(17,0) initial dcl 6-8 not_alpha_array internal static fixed bin(17,0) initial dcl 6-8 not_an_array internal static fixed bin(17,0) initial dcl 6-8 not_pdl_ptr internal static fixed bin(17,0) initial dcl 6-8 not_same_type internal static fixed bin(17,0) initial dcl 6-8 num 000114 automatic fixed bin(17,0) dcl 8 set ref 31* 33 67* 71 72* 72 123* 128* 152 163 176 184 184* 185 185* 191 191 212* 259 271* 272* obarray defined fixed bin(71,0) dcl 4-6 overflow_err internal static fixed bin(17,0) initial dcl 6-8 parenmissing internal static fixed bin(17,0) initial dcl 6-8 pdl_ptr_types36 based structure array level 1 dcl 5-7 pnamel 4 based fixed bin(17,0) level 2 dcl 2-5 set ref 92 prog_frame defined pointer dcl 4-6 push_down_list_ptr_types based structure array level 1 dcl 5-7 quoterror internal static fixed bin(17,0) initial dcl 6-8 reopen_inconsistent internal static fixed bin(17,0) initial dcl 6-8 retnum 000032 constant label dcl 32 ref 213 273 shortreadlist internal static fixed bin(17,0) initial dcl 6-8 slen 000111 automatic fixed bin(17,0) dcl 8 set ref 48* 56* 56 61 61 63 70* 71 72 152* 153 153* 158 158 162 176* 183 183* 186 186 189 191 223* 226 226 230 230 special_array_type internal static fixed bin(17,0) initial dcl 6-8 st 000134 automatic pointer dcl 84 set ref 102* 103 104 110 111 stack 000100 automatic pointer dcl 8 set ref 26* 32 33 34 39* 40 41* 41 61 62 63 71 77 77 87 88 91 92 104 110 121 123 126 128 141* 157 157 158 161 162 163 181 181 186 189 190 191 198* 219* 224 225 225 226 229 230 231 231 238* 243 251* 256 257 258 259 267* stack_loss_error internal static fixed bin(17,0) initial dcl 6-8 stack_ptr defined pointer dcl 4-6 set ref 26 34* 39 102 103* 111* 141 198 219 224* 238 251 267 star_rset defined fixed bin(71,0) dcl 4-45 stars_left_in_name internal static fixed bin(17,0) initial dcl 6-8 store_function_misused internal static fixed bin(17,0) initial dcl 6-8 store_not_allowed internal static fixed bin(17,0) initial dcl 6-8 string 1 based char level 2 dcl 1-6 set ref 71* 71 163* 163 191* 191 212 212 230* 230 243* 259* 272 string_length based fixed bin(17,0) level 2 dcl 1-6 set ref 31 56 63* 70 71 71 152 162* 163 163 185 185 189* 191 191 191 212 212 223 229* 229 230 230 243 243 258* 259 271 272 stringlength 000012 constant entry external dcl 22 substr builtin function dcl 287 set ref 71* 163 191 230* 230 259 272 substr2_joint 000210 constant label dcl 144 ref 172 t_atom defined fixed bin(71,0) dcl 4-6 t_atom_ptr based pointer dcl 4-6 temp based fixed bin(71,0) array dcl 5-7 set ref 34 61* 77* 77 103 104* 104 110* 110 121 123 126 128 157* 157 158* 181* 181 186* 224 225* 225 226* 243* 256* temp_ptr based pointer array dcl 5-7 ref 63 71 88 92 162 163 189 191 229 230 258 259 temp_type 0(21) based bit(9) array level 2 packed unaligned dcl 5-7 set ref 62* 161* 190* 257* temp_type36 based bit(36) array level 2 dcl 5-7 ref 87 91 throw_to_no_catch internal static fixed bin(17,0) initial dcl 6-8 too_few_args internal static fixed bin(17,0) initial dcl 6-8 too_many_args internal static fixed bin(17,0) initial dcl 6-8 tty_input_chan defined pointer dcl 4-6 tty_output_chan defined pointer dcl 4-6 type_info based bit(36) level 2 in structure "flonum_fmt" dcl 9-4 in procedure "lisp_char_fns_" ref 126 type_info based bit(36) level 2 in structure "fixnum_fmt" dcl 9-4 in procedure "lisp_char_fns_" set ref 32* 121 unable_to_float internal static fixed bin(17,0) initial dcl 6-8 undefined_atom internal static fixed bin(17,0) initial dcl 6-8 undefined_function internal static fixed bin(17,0) initial dcl 6-8 undefined_subr internal static fixed bin(17,0) initial dcl 6-8 underflow_fault internal static fixed bin(17,0) initial dcl 6-8 unm 000112 automatic pointer dcl 8 set ref 105* 106 107 108 unmkd_ptr defined pointer dcl 4-6 set ref 105 106* unseen_go_tag internal static fixed bin(17,0) initial dcl 6-8 unspec builtin function dcl 287 set ref 259* 272 unwp_frame defined pointer dcl 4-6 user_intr_array defined fixed bin(71,0) array dcl 4-45 wrong_no_args internal static fixed bin(17,0) initial dcl 6-8 zerodivide_fault internal static fixed bin(17,0) initial dcl 6-8 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1232 1254 1057 1242 Length 1646 1057 22 356 153 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME lisp_char_fns_ 123 external procedure is an external procedure. lsubr_prologue internal procedure shares stack frame of external procedure lisp_char_fns_. getstring internal procedure shares stack frame of external procedure lisp_char_fns_. barf internal procedure shares stack frame of external procedure lisp_char_fns_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME lisp_char_fns_ 000100 stack lisp_char_fns_ 000102 nargs lisp_char_fns_ 000103 argno lisp_char_fns_ 000104 argp lisp_char_fns_ 000106 argp2 lisp_char_fns_ 000110 myname lisp_char_fns_ 000111 slen lisp_char_fns_ 000112 unm lisp_char_fns_ 000114 num lisp_char_fns_ 000134 st getstring THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return fl2_to_fx1 ext_entry set_cs_eis index_cs_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. lisp_alloc_ lisp_error_ lisp_get_atom_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. lisp_static_vars_$stack_ptr lisp_static_vars_$unmkd_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000002 22 000010 26 000017 27 000023 28 000025 29 000027 31 000030 32 000032 33 000034 34 000037 35 000043 43 000044 47 000052 48 000053 49 000054 53 000057 54 000061 55 000071 56 000072 57 000074 61 000076 62 000115 63 000125 67 000132 68 000133 69 000143 70 000144 71 000146 72 000161 73 000164 77 000166 78 000172 136 000173 141 000201 142 000206 144 000210 147 000212 149 000213 150 000215 152 000216 153 000222 157 000224 158 000227 159 000244 160 000246 161 000247 162 000253 163 000256 164 000273 166 000274 170 000302 171 000303 172 000305 174 000311 175 000313 176 000314 177 000316 178 000320 179 000321 180 000323 181 000324 183 000327 184 000332 185 000340 186 000344 187 000361 188 000363 189 000364 190 000367 191 000373 192 000411 194 000412 198 000420 199 000425 201 000427 202 000431 204 000432 205 000434 206 000435 209 000437 210 000441 212 000442 213 000453 215 000454 219 000462 220 000467 221 000471 222 000473 223 000474 224 000476 225 000502 226 000504 227 000520 228 000522 229 000523 230 000526 231 000535 232 000537 234 000540 238 000546 239 000553 240 000555 241 000557 243 000560 245 000601 247 000602 251 000610 252 000615 253 000617 254 000621 256 000622 257 000635 258 000641 259 000644 261 000653 263 000654 267 000662 268 000667 269 000671 270 000673 271 000674 272 000700 273 000704 37 000705 39 000706 40 000713 41 000715 42 000717 82 000720 86 000721 87 000722 88 000730 89 000734 91 000735 92 000742 93 000747 95 000750 96 000751 117 000752 121 000754 123 000762 124 000770 126 000771 128 000776 129 001005 131 001006 132 001007 134 001010 98 001011 102 001012 103 001016 104 001020 105 001025 106 001030 107 001033 108 001035 109 001037 110 001043 111 001051 113 001054 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved