COMPILATION LISTING OF SEGMENT lisp_reader_init_ Compiled by: Multics PL/I Compiler, Release 28b, of April 11, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 06/30/83 0850.5 mst Thu Options: map single_symbol_list 1 /* ************************************************************** 2* * * 3* * Copyright, (C) Massachusetts Institute of Technology, 1974 * 4* * * 5* ************************************************************** */ 6 reader_init: proc; /* Initializes the read syntax table */ 7 8 /* 9* * D. A. Moon 27 June 1972 removed from lisp_reader_.pl1 10* * modified for new readtable format, 12 Nov 72, by DAM 11* * changed to use lisp_reader_alm_$initial_readtable, 7 Apr 73 by DAM 12* * modified 74.05.30 by DAM for new arrays 13* */ 14 1 1 /* include file lisp_stack_fmt.incl.pl1 -- 1 2* describes the format of the pushdown list 1 3* used by the lisp evaluator and lisp subrs 1 4* for passing arguments, saving atom bindings, 1 5* and as temporaries */ 1 6 1 7 dcl 1 8 temp(10000) fixed bin(71) aligned based, 1 9 1 10 temp_ptr(10000) ptr aligned based, 1 11 1 push_down_list_ptr_types(10000) based aligned, 1 12 2 junk bit(21) unaligned, 1 13 2 temp_type bit(9) unaligned, 1 14 2 more_junk bit(42) unaligned, 1 15 1 16 1 pdl_ptr_types36(10000) based aligned, 1 17 2 temp_type36 bit(36), 1 18 2 junk bit(36), 1 19 1 20 1 binding_block aligned based, 1 21 2 top_block bit(18) unaligned, 1 22 2 bot_block bit(18) unaligned, /* these two are rel pointers into the marked PDL */ 1 23 2 back_ptr bit(18) unaligned, /* relative pointer into unmarked PDL for last binding block. */ 1 24 2 rev_ptr bit(18) unaligned, /* relative pointer to reversal bb which reversed this one, init to 0 */ 1 25 1 26 1 bindings(10000) based aligned, /* format fof bindings on stack */ 1 27 2 old_val fixed bin(71) aligned, 1 28 2 atom fixed bin(71) aligned; 1 29 1 30 1 31 1 32 /* end include file lisp_stack_fmt.incl.pl1 */ 15 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 */ 16 3 1 /* Include file lisp_common_vars.incl.pl1; 3 2* describes the external static variables which may be referenced 3 3* by lisp routines. 3 4* D. Reed 4/1/71 */ 3 5 3 6 dcl 1 lisp_static_vars_$lisp_static_vars_ external, 3 7 2 cclist_ptr ptr, /* pointer to list of constants kept 3 8* by compiled programs */ 3 9 2 garbage_collect_soon bit(1) aligned, /* if this is on we should garbage collect soon */ 3 10 3 11 lisp_static_vars_$err_recp ptr ext aligned, /* pointer to error data */ 3 12 err_recp ptr defined (lisp_static_vars_$err_recp), 3 13 eval_frame ptr defined (lisp_static_vars_$eval_frame), /* info kept by eval if *rset t */ 3 14 lisp_static_vars_$eval_frame ptr ext static, 3 15 lisp_static_vars_$prog_frame ptr ext aligned, 3 16 lisp_static_vars_$err_frame ptr ext aligned, 3 17 lisp_static_vars_$catch_frame ptr ext aligned, 3 18 lisp_static_vars_$unwp_frame ptr ext aligned, 3 19 lisp_static_vars_$stack_ptr ptr ext aligned, 3 20 lisp_static_vars_$t_atom fixed bin(71) ext aligned, 3 21 lisp_static_vars_$top_level label ext, /* top level read_eval_print loop */ 3 22 lisp_static_vars_$unmkd_ptr ptr ext aligned, 3 23 lisp_static_vars_$binding_top ptr ext aligned, 3 24 lisp_static_vars_$obarray fixed bin(71) aligned ext, 3 25 obarray fixed bin(71) defined (lisp_static_vars_$obarray), 3 26 lisp_static_vars_$array_atom fixed bin(71) aligned ext, 3 27 array_atom fixed bin(71) defined (lisp_static_vars_$array_atom), 3 28 binding_top ptr defined (lisp_static_vars_$binding_top), 3 29 unmkd_ptr ptr defined (lisp_static_vars_$unmkd_ptr), 3 30 stack_ptr ptr defined (lisp_static_vars_$stack_ptr), 3 31 lisp_static_vars_$nil ext static fixed bin(71) aligned, 3 32 nil fixed bin(71) defined (lisp_static_vars_$nil), 3 33 lisp_static_vars_$tty_input_chan ext static ptr, /* used by the reader */ 3 34 lisp_static_vars_$tty_output_chan ext static ptr, /*used by print*/ 3 35 tty_input_chan ptr def (lisp_static_vars_$tty_input_chan), 3 36 tty_output_chan ptr def (lisp_static_vars_$tty_output_chan), 3 37 lisp_static_vars_$iochan_list external pointer, /* list of all open iochans */ 3 38 nil_ptr ptr based(addr(lisp_static_vars_$nil)) aligned, 3 39 prog_frame ptr def (lisp_static_vars_$prog_frame), /* 3 ptrs for use of lisp_prog_fns_ */ 3 40 err_frame ptr def (lisp_static_vars_$err_frame), /* they point out frames in unmkd pdl */ 3 41 catch_frame ptr def (lisp_static_vars_$catch_frame), 3 42 unwp_frame ptr def (lisp_static_vars_$unwp_frame), 3 43 t_atom_ptr ptr aligned based(addr(lisp_static_vars_$t_atom)), 3 44 t_atom fixed bin(71) defined (lisp_static_vars_$t_atom); /* pointer to atom t */ 3 45 dcl lisp_static_vars_$user_intr_array(20) fixed bin(71) aligned ext static, /* -> atoms whose values are intr service functions */ 3 46 user_intr_array (20) fixed bin(71) aligned def (lisp_static_vars_$user_intr_array), 3 47 lisp_static_vars_$star_rset fixed bin(71) aligned ext static, 3 48 star_rset fixed bin(71) aligned def (lisp_static_vars_$star_rset); 3 49 3 50 3 51 /* end include file lisp_common_vars.incl.pl1 */ 17 4 1 /* lisp number format -- overlaid on standard its pointer. */ 4 2 4 3 4 4 dcl 1 fixnum_fmt based aligned, 4 5 2 type_info bit(36) aligned, 4 6 2 fixedb fixed bin, 4 7 4 8 1 flonum_fmt based aligned, 4 9 2 type_info bit(36) aligned, 4 10 2 floatb float bin, 4 11 4 12 fixnum_type bit(36) aligned static init("000000000000000000000100000000100111"b), 4 13 flonum_type bit(36) aligned static init("000000000000000000000010000000100111"b); 4 14 4 15 /* end of lisp number format */ 4 16 18 19 20 21 dcl stack ptr, 22 based_ptr pointer based aligned, 23 addr builtin, 24 lisp_static_vars_$readtable fixed bin(71) external, 25 lisp_array_fcns_$star_array entry; 26 27 /* The read table initializer */ 28 29 stack = stack_ptr; 30 stack_ptr = addr(stack -> temp(5)); 31 addr(stack -> temp(4)) -> fixnum_fmt.type_info = fixnum_type; 32 addr(stack -> temp(4)) -> fixedb = -6; /* passing 3 arguments */ 33 stack -> temp(1) = nil; /* create an array */ 34 stack -> temp(2) = lisp_static_vars_$readtable; /* to be a readtable */ 35 stack -> temp(3) = t_atom; /* and initialize it */ 36 call lisp_array_fcns_$star_array; 37 addr(lisp_static_vars_$readtable)->based_ptr -> atom.value = stack -> temp(1); 38 stack_ptr = stack; 39 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 06/29/83 1542.4 lisp_reader_init_.pl1 >special_ldd>on>06/27/83>lisp_reader_init_.pl1 15 1 03/27/82 0437.0 lisp_stack_fmt.incl.pl1 >ldd>include>lisp_stack_fmt.incl.pl1 16 2 03/27/82 0437.1 lisp_atom_fmt.incl.pl1 >ldd>include>lisp_atom_fmt.incl.pl1 17 3 03/27/82 0437.0 lisp_common_vars.incl.pl1 >ldd>include>lisp_common_vars.incl.pl1 18 4 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) addr builtin function dcl 21 ref 30 31 32 37 array_atom defined fixed bin(71,0) dcl 3-6 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 based_ptr based pointer dcl 21 ref 37 binding_block based structure level 1 dcl 1-7 binding_top defined pointer dcl 3-6 bindings based structure array level 1 dcl 1-7 catch_frame defined pointer dcl 3-6 err_frame defined pointer dcl 3-6 err_recp defined pointer dcl 3-6 eval_frame defined pointer dcl 3-6 fixedb 1 based fixed bin(17,0) level 2 dcl 4-4 set ref 32* fixnum_fmt based structure level 1 dcl 4-4 fixnum_type constant bit(36) initial dcl 4-4 ref 31 flonum_fmt based structure level 1 dcl 4-4 flonum_type internal static bit(36) initial dcl 4-4 lisp_array_fcns_$star_array 000020 constant entry external dcl 21 ref 36 lisp_static_vars_$array_atom external static fixed bin(71,0) dcl 3-6 lisp_static_vars_$binding_top external static pointer dcl 3-6 lisp_static_vars_$catch_frame external static pointer dcl 3-6 lisp_static_vars_$err_frame external static pointer dcl 3-6 lisp_static_vars_$err_recp external static pointer dcl 3-6 lisp_static_vars_$eval_frame external static pointer dcl 3-6 lisp_static_vars_$iochan_list external static pointer dcl 3-6 lisp_static_vars_$lisp_static_vars_ external static structure level 1 unaligned dcl 3-6 lisp_static_vars_$nil 000014 external static fixed bin(71,0) dcl 3-6 ref 33 33 lisp_static_vars_$obarray external static fixed bin(71,0) dcl 3-6 lisp_static_vars_$prog_frame external static pointer dcl 3-6 lisp_static_vars_$readtable 000016 external static fixed bin(71,0) dcl 21 set ref 34 37 lisp_static_vars_$stack_ptr 000010 external static pointer dcl 3-6 set ref 29 29 30* 30 38* 38 lisp_static_vars_$star_rset external static fixed bin(71,0) dcl 3-45 lisp_static_vars_$t_atom 000012 external static fixed bin(71,0) dcl 3-6 ref 35 35 lisp_static_vars_$top_level external static label variable dcl 3-6 lisp_static_vars_$tty_input_chan external static pointer dcl 3-6 lisp_static_vars_$tty_output_chan external static pointer dcl 3-6 lisp_static_vars_$unmkd_ptr external static pointer dcl 3-6 lisp_static_vars_$unwp_frame external static pointer dcl 3-6 lisp_static_vars_$user_intr_array external static fixed bin(71,0) array dcl 3-45 nil defined fixed bin(71,0) dcl 3-6 ref 33 nil_ptr based pointer dcl 3-6 obarray defined fixed bin(71,0) dcl 3-6 pdl_ptr_types36 based structure array level 1 dcl 1-7 prog_frame defined pointer dcl 3-6 push_down_list_ptr_types based structure array level 1 dcl 1-7 reader_init 000001 constant entry external dcl 6 stack 000100 automatic pointer dcl 21 set ref 29* 30 31 32 33 34 35 37 38 stack_ptr defined pointer dcl 3-6 set ref 29 30* 38* star_rset defined fixed bin(71,0) dcl 3-45 t_atom defined fixed bin(71,0) dcl 3-6 ref 35 t_atom_ptr based pointer dcl 3-6 temp based fixed bin(71,0) array dcl 1-7 set ref 30 31 32 33* 34* 35* 37 temp_ptr based pointer array dcl 1-7 tty_input_chan defined pointer dcl 3-6 tty_output_chan defined pointer dcl 3-6 type_info based bit(36) level 2 dcl 4-4 set ref 31* unmkd_ptr defined pointer dcl 3-6 unwp_frame defined pointer dcl 3-6 user_intr_array defined fixed bin(71,0) array dcl 3-45 value based fixed bin(71,0) level 2 dcl 2-5 set ref 37* STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 136 160 40 146 Length 424 40 22 227 76 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME reader_init 66 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME reader_init 000100 stack reader_init THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. lisp_array_fcns_$star_array THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. lisp_static_vars_$nil lisp_static_vars_$readtable lisp_static_vars_$stack_ptr lisp_static_vars_$t_atom LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000000 29 000006 30 000011 31 000013 32 000015 33 000017 34 000021 35 000023 36 000025 37 000031 38 000035 39 000037 ----------------------------------------------------------- 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