COMPILATION LISTING OF SEGMENT lisp_boot_ 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.3 mst Thu Options: map single_symbol_list 1 /* ************************************************************** 2* * * 3* * Copyright, (C) Massachusetts Institute of Technology, 1973 * 4* * * 5* ************************************************************** */ 6 lisp_boot_: proc; 7 8 /* Modified 10/14/82 by Richard Lamson to correct declaration of ACC string */ 9 10 /* lisp bootstrap procedure */ 11 12 dcl tempp ptr, 13 i fixed bin, 14 foo fixed bin(71) aligned, 15 lisp_static_vars_$dollar_p_atom fixed bin(71) aligned external, 16 dollar_p_atom fixed bin(71) aligned def (lisp_static_vars_$dollar_p_atom), 17 make_lisp_subr_block_ entry(fixed bin(71)aligned,fixed bin(2)aligned, char(*) aligned, 18 char(*) aligned, fixed bin(17)aligned,fixed bin(17)aligned), 19 lisp_alloc_ entry (fixed bin(17), ptr), 20 lisp_subroutine_maker_ entry, 21 lisp_obarray_utils_$init_ht entry, 22 lisp_reader_init_$reader_init entry, 23 lisp_io_control_$boot entry, 24 lisp_get_atom_ entry(char(*)aligned, fixed bin(71)aligned), 25 (substr, divide, addr, addrel) builtin; 26 27 dcl 1 acc aligned based(accptr), 28 2 len fixed bin(9) unaligned unsigned, 29 2 str char(0 refer (acc.len)) unaligned, 30 accptr pointer, 31 lisp_static_vars_$number_of_atomic_constants fixed bin external, 32 lisp_static_vars_$atomic_constants fixed bin ext, /* dummy */ 33 lisp_static_vars_$atomic_constants_names fixed bin ext, /* dummy */ 34 number_of_atomic_constants fixed bin defined (lisp_static_vars_$number_of_atomic_constants), 35 atomic_constants(1:number_of_atomic_constants) fixed bin(71) aligned based(addr(lisp_static_vars_$atomic_constants)); 36 37 38 dcl (lisp_static_vars_$divov_flag, 39 lisp_static_vars_$prinlevel, 40 lisp_static_vars_$prinlength) fixed bin(71) external; /* atoms that must be inited to nil */ 41 1 1 /* BEGIN INCLUDE FILE lisp_initial_atoms.incl.pl1 */ 1 2 1 3 dcl lisp_static_vars_$toplevel ext fixed bin(71), 1 4 toplevel fixed bin(71) defined (lisp_static_vars_$toplevel), 1 5 1 6 lisp_static_vars_$errlist ext fixed bin(71), 1 7 errlist fixed bin(71) defined (lisp_static_vars_$errlist), 1 8 1 9 lisp_static_vars_$STAR ext fixed bin(71), 1 10 STAR fixed bin(71) defined (lisp_static_vars_$STAR), 1 11 lisp_static_vars_$PLUS fixed bin(71) external, 1 12 PLUS fixed bin(71) defined (lisp_static_vars_$PLUS), 1 13 lisp_static_vars_$MINUS fixed bin(71) external, 1 14 MINUS fixed bin(71) defined (lisp_static_vars_$MINUS), 1 15 lisp_static_vars_$SLASH fixed bin(71) external, 1 16 SLASH fixed bin(71) defined (lisp_static_vars_$SLASH); 1 17 1 18 /* END INCLUDE FILE lisp_initial_atoms.incl.pl1 */ 42 2 1 /* lisp number format -- overlaid on standard its pointer. */ 2 2 2 3 2 4 dcl 1 fixnum_fmt based aligned, 2 5 2 type_info bit(36) aligned, 2 6 2 fixedb fixed bin, 2 7 2 8 1 flonum_fmt based aligned, 2 9 2 type_info bit(36) aligned, 2 10 2 floatb float bin, 2 11 2 12 fixnum_type bit(36) aligned static init("000000000000000000000100000000100111"b), 2 13 flonum_type bit(36) aligned static init("000000000000000000000010000000100111"b); 2 14 2 15 /* end of lisp number format */ 2 16 43 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 */ 44 4 1 /* Include file lisp_atom_fmt.incl.pl1; 4 2* describes internal format of atoms in the lisp system 4 3* D.Reed 4/1/71 */ 4 4 4 5 dcl 1 atom aligned based, /* overlay for atom fomat */ 4 6 2 value fixed bin(71), /* atom's value */ 4 7 2 plist fixed bin(71), /* property list */ 4 8 2 pnamel fixed bin, /* length of print name */ 4 9 2 pname char(1 refer(pnamel)), /* print name of atom */ 4 10 4 11 1 atom_ptrs based aligned, /* for use of plist and value of atom as ptrs */ 4 12 2 value ptr, 4 13 2 plist ptr, 4 14 4 15 1 atom_double_words based aligned, /* overlay for atom pointer checking */ 4 16 2 value bit(72), 4 17 2 plist bit(72); 4 18 4 19 /* end of include file lisp_atom_fmt.incl.pl1 */ 45 5 1 /* Include file lisp_ptr_fmt.incl.pl1; 5 2* describes the format of lisp pointers as 5 3* a bit string overlay on the double word ITS pair 5 4* which allows lisp to access some unused bits in 5 5* the standard ITS pointer format. It should be noted that 5 6* this is somewhat of a kludge, since 5 7* it is quite machine dependent. However, to store type 5 8* fields in the pointer, saves 2 words in each cons, 5 9* plus some efficiency problems. 5 10* 5 11* D.Reed 4/1/71 */ 5 12 /* modified to move type field to other half of ptr */ 5 13 /* D.Reed 5/31/72 */ 5 14 5 15 5 16 dcl based_ptr ptr aligned based; /* for dealing with lisp values as pointers */ 5 17 dcl lisp_ptr_type bit(36) aligned based, /* for more efficient checking of type bits */ 5 18 1 lisp_ptr based aligned, /* structure of double word pointer in lisp */ 5 19 2 segno bit(18) unaligned, /* segment number pointed to by pointer */ 5 20 2 ringnum bit(3) unaligned, /* ring mumber for validation */ 5 21 2 type bit(9) unaligned, /* type field */ 5 22 2 itsmod bit(6) unaligned, 5 23 2 offset fixed bin(17) unaligned, /* offset in segment of object pointed to */ 5 24 2 chain bit(18) unaligned, /* normally 0, but may be set to chain pointers together */ 5 25 5 26 /* manifest constant strings for testing above type field */ 5 27 5 28 ( 5 29 Cons init("000000000"b), /* a pointer to a list has a zero type field */ 5 30 Fixed init("100000000"b), /* a fixed point number, stored in second word of the ptr */ 5 31 Float init("010000000"b), /* a floating number, also stored in the second word of the ptr */ 5 32 Atsym init("001000000"b), /* this bit on means a ptr to an atomic symbol */ 5 33 Atomic init("111111111"b), /* any bit on means an atomic data type */ 5 34 Bignum init("000001000"b), /* a multiple-precision number */ 5 35 Bigfix init("000001000"b), /* a fixed point bignum (only kind for now) */ 5 36 Numeric init("110000000"b), /* either type immediate number. Both bits on 5 37* means a special internal uncollectable weird object */ 5 38 Uncollectable init("110000000"b), /* not looked through by garbage collector */ 5 39 String init("000100000"b), /* pointer to lisp character string - length word, chars */ 5 40 Subr init("000010000"b), /* pointer to compiled (or builtin) subroutine (linkage) code */ 5 41 System_Subr init("000000100"b), /* Subr bit must be on too, indicates ptr into lisp_subr_tv_ */ 5 42 Array init("000000010"b), /* Subr bit must be on too, indicates ptr to a lisp array */ 5 43 File init("000000001"b) /* pointer to a file object (iochan block) */ 5 44 ) bit(9) static, 5 45 5 46 /* 36 bit manifest constant strings for testing lisp_ptr_type */ 5 47 5 48 5 49 ( 5 50 Cons36 init("000000000000000000000000000000"b), 5 51 Fixed36 init("000000000000000000000100000000"b), 5 52 Float36 init("000000000000000000000010000000"b), 5 53 Atsym36 init("000000000000000000000001000000"b), 5 54 Atomic36 init("000000000000000000000111111100"b), 5 55 Bignum36 init("000000000000000000000000001000"b), 5 56 System_Subr36 5 57 init("000000000000000000000000000100"b), 5 58 Bigfix36 init("000000000000000000000000001000"b), 5 59 Numeric36 init("000000000000000000000110000000"b), /* does not check for bignum */ 5 60 NotConsOrAtsym36 5 61 init("000000000000000000000110111111"b), 5 62 SubrNumeric36 5 63 init("000000000000000000000110010000"b), /* used in garbage collector, for quick check */ 5 64 String36 init("000000000000000000000000100000"b), 5 65 Subr36 init("000000000000000000000000010000"b), 5 66 File36 init("000000000000000000000000000001"b), 5 67 Array36 init("000000000000000000000000000010"b)) bit(36) aligned static, 5 68 5 69 /* undefined pointer value is double word of zeros */ 5 70 5 71 Undefined bit(72) static init(""b); 5 72 5 73 /* end of include file lisp_ptr_fmt.incl.pl1 */ 46 6 1 /* Include file lisp_cons_fmt.incl.pl1; 6 2* defines the format for a cons within the lisp system 6 3* D.Reed 4/1/71 */ 6 4 6 5 dcl consptr ptr, 6 6 1 cons aligned based (consptr), /* structure defining format for cons */ 6 7 2 car fixed bin(71), 6 8 2 cdr fixed bin(71), 6 9 6 10 1 cons_ptrs aligned based (consptr), /* for using car and cdr as pointers */ 6 11 2 car ptr, 6 12 2 cdr ptr, 6 13 6 14 6 15 1 cons_types aligned based (consptr), /* structure for extracting types out of cons */ 6 16 2 padding bit(21) unaligned, 6 17 2 car bit(9) unaligned, 6 18 2 padding2 bit(63) unaligned, 6 19 2 cdr bit(9) unaligned, 6 20 2 padend bit(42) unaligned; 6 21 6 22 dcl 1 cons_types36 aligned based, 6 23 2 car bit(36), 6 24 2 pada bit(36), 6 25 2 cdr bit(36), 6 26 2 padd bit(36); 6 27 6 28 6 29 /* end include file lisp_cons_fmt.incl.pl1 */ 47 7 1 /* INCLUDE FILE lisp_io.incl.pl1 */ 7 2 7 3 /* data structures used by the lisp i/o system */ 7 4 8 1 /* BEGIN INCLUDE FILE lisp_iochan.incl.pl1 */ 8 2 8 3 /* This include file describes the format of the 'iochan' block, 8 4* which is used to implement lisp file-objects. The iochan 8 5* is the central data base of the i/o system. When open 8 6* is used, an iochan is created in lisp static storage. 8 7* When the lisp environment is booted, 2 iochans for input and 8 8* output on the tty are created. Iochans are saved and restored 8 9* by the save mechanism */ 8 10 8 11 /* open i/o channel information */ 8 12 8 13 dcl 1 iochan based aligned, /* format of a file object */ 8 14 2 ioindex fixed bin(24), /* 0-origin character position in block */ 8 15 2 iolength fixed bin(24), /* size of block in chars - actual(in), max(out) */ 8 16 2 ioptr pointer, /* -> block */ 8 17 2 thread pointer, /* list of all iochans open; from lisp_static_vars_$iochan_list */ 8 18 2 fcbp pointer, /* for tssi_ */ 8 19 2 aclinfop pointer, /* .. */ 8 20 2 component fixed bin, /* .. */ 8 21 2 charpos fixed bin, /* 0-origin horizontal position on line */ 8 22 2 linel fixed bin, /* (out) line length, 0 => oo */ 8 23 2 flags unaligned, 8 24 3 seg bit(1), /* 1 => msf, 0 => stream */ 8 25 3 read bit(1), /* 0 => openi, 1 => not */ 8 26 3 write bit(1), /* 0 => openo, 1 => not */ 8 27 3 gc_mark bit(1), /* for use by the garbage collector */ 8 28 3 interactive bit(1), /* 1 => input => this is the tty 8 29* output => flush buff after each op */ 8 30 3 must_reopen bit(1), /* 1 => has been saved and not reopend yet */ 8 31 3 nlsync bit(1), /* 1 => there is a NL in the buffer (output streams only) */ 8 32 3 charmode bit(1), /* enables instant ios_$write */ 8 33 3 extra_nl_done bit(1), /* 1 => last char output was extra NL for chrct */ 8 34 3 fixnum_mode bit(1), /* to be used with in and out functions */ 8 35 3 image_mode bit(1), /* just suppresses auto-cr */ 8 36 3 not_yet_used bit(25), 8 37 2 function fixed bin(71), /* EOF function (input), or endpagefn (output) <<< gc-able >>> */ 8 38 2 namelist fixed bin(71), /* list of names, car is directory pathname <<< gc-able >>> */ 8 39 2 name char(32) unaligned, /* stream name or entry name */ 8 40 2 pagel fixed bin, /* number of lines per page */ 8 41 2 linenum fixed bin, /* current line number, starting from 0 */ 8 42 2 pagenum fixed bin, /* current page number, starting from 0 */ 8 43 8 44 flag_reset_mask bit(36) aligned static init( /* anded into flags with each char */ 8 45 "111011110111111111"b); 8 46 8 47 /* END INCLUDE FILE lisp_iochan.incl.pl1 */ 7 5 7 6 7 7 /* masks for checking iochan.flags, seeing if lisp_io_control_$fix_not_ok_iochan should be called */ 7 8 7 9 dcl not_ok_to_read bit(36) static init("0100010001"b), /* mask for checking iochan.flags on input */ 7 10 not_ok_to_write bit(36) static init("0010010001"b);/* mask for checking iochan.flags on output */ 7 11 dcl not_ok_to_read_fixnum bit(36) static init("0100010000"b), 7 12 not_ok_to_write_fixnum bit(36) static init("0010010000"b); 7 13 7 14 7 15 /* miscellaneous global, static variables and atoms used by the I/O system */ 7 16 7 17 dcl lisp_static_vars_$read_print_nl_sync bit(36) ext, 7 18 read_print_nl_sync bit(36) defined (lisp_static_vars_$read_print_nl_sync), 7 19 lisp_static_vars_$ibase ext fixed bin(71), 7 20 ibase fixed bin(71) defined (lisp_static_vars_$ibase), 7 21 7 22 lisp_static_vars_$quote_atom ext fixed bin (71), 7 23 quote_atom fixed bin(71) defined (lisp_static_vars_$quote_atom), 7 24 7 25 lisp_static_vars_$base ext fixed bin(71), 7 26 base fixed bin(71) defined ( lisp_static_vars_$base), 7 27 7 28 lisp_static_vars_$stnopoint ext fixed bin(71), 7 29 stnopoint fixed bin(71) defined (lisp_static_vars_$stnopoint), 7 30 7 31 lisp_static_vars_$tty_atom ext fixed bin(71), 7 32 tty_atom fixed bin(71) defined (lisp_static_vars_$tty_atom), 7 33 lisp_static_vars_$status_gctwa ext fixed bin(71), 7 34 status_gctwa fixed bin(71) defined (lisp_static_vars_$status_gctwa), 7 35 7 36 lisp_static_vars_$s_atom ext fixed bin(71), 7 37 s_atom fixed bin(71) defined (lisp_static_vars_$s_atom), 7 38 7 39 lisp_static_vars_$readtable ext fixed bin(71), 7 40 readtable fixed bin(71) defined (lisp_static_vars_$readtable), 7 41 7 42 lisp_static_vars_$plus_status ext fixed bin(71), 7 43 plus_status fixed bin(71) defined (lisp_static_vars_$plus_status); 7 44 9 1 /* BEGIN INCLUDE FILE lisp_control_chars.incl.pl1 */ 9 2 9 3 /* Last modified D. Reed 6/29/72 */ 9 4 9 5 dcl lisp_static_vars_$ctrlD ext fixed bin(71), 9 6 ctrlD fixed bin(71) defined (lisp_static_vars_$ctrlD); 9 7 9 8 dcl lisp_static_vars_$ctrlQ ext fixed bin(71), 9 9 ctrlQ fixed bin(71) defined (lisp_static_vars_$ctrlQ); 9 10 9 11 dcl lisp_static_vars_$ctrlR ext fixed bin(71), 9 12 ctrlR fixed bin(71) defined (lisp_static_vars_$ctrlR); 9 13 9 14 dcl lisp_static_vars_$ctrlW ext fixed bin(71), 9 15 ctrlW fixed bin(71) defined (lisp_static_vars_$ctrlW); 9 16 9 17 /* END INCLUDE FILE lisp_control_chars.incl.pl1 */ 9 18 7 45 7 46 /* END INCLUDE FILE lisp_io.incl.pl1 */ 7 47 48 49 50 /* clear hash table for atom lookup */ 51 52 call lisp_obarray_utils_$init_ht(); 53 call lisp_subroutine_maker_; /* initialize all subroutines */ 54 55 56 /* set up pointers to atoms in lisp_static_vars_ */ 57 58 accptr = addr(lisp_static_vars_$atomic_constants_names); 59 do i = 1 to number_of_atomic_constants; 60 call lisp_get_atom_((acc.str), atomic_constants(i)); 61 accptr = addrel(accptr, divide(acc.len+4, 4, 17, 0)); 62 end; 63 64 65 addr(errlist)->based_ptr->atom.value, 66 addr(ctrlD)->based_ptr->atom.value = nil; /* init values of atoms */ 67 addr(t_atom)->based_ptr->atom.value = t_atom; 68 69 addr(base)->based_ptr->fixnum_fmt.type_info, 70 addr(ibase)->based_ptr->fixnum_fmt.type_info = fixnum_type; 71 addr(base)->based_ptr->fixedb, 72 addr(ibase)->based_ptr->fixedb = 8; /* default is octal */ 73 74 addr(user_intr_array(20))->based_ptr->atom.value = nil; /* gc-daemon function */ 75 plus_status, toplevel, lisp_static_vars_$divov_flag = nil; 76 status_gctwa = nil; 77 addr(star_rset) -> based_ptr -> atom.value, 78 addr(lisp_static_vars_$prinlevel) -> based_ptr -> atom.value, 79 addr(lisp_static_vars_$prinlength) -> based_ptr -> atom.value = nil; 80 call lisp_get_atom_("*nopoint",stnopoint); 81 addr(stnopoint)->based_ptr->atom.value = nil; 82 call lisp_get_atom_("tty",tty_atom); 83 addr(tty_atom)->based_ptr->fixedb = 0; /* type of tty */ 84 addr(tty_atom)->based_ptr->fixnum_fmt.type_info = fixnum_type; 85 86 87 88 call lisp_io_control_$boot; 89 call lisp_reader_init_$reader_init(); 90 91 end lisp_boot_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 06/29/83 1542.2 lisp_boot_.pl1 >special_ldd>on>06/27/83>lisp_boot_.pl1 42 1 03/27/82 0437.0 lisp_initial_atoms.incl.pl1 >ldd>include>lisp_initial_atoms.incl.pl1 43 2 03/27/82 0437.0 lisp_nums.incl.pl1 >ldd>include>lisp_nums.incl.pl1 44 3 03/27/82 0437.0 lisp_common_vars.incl.pl1 >ldd>include>lisp_common_vars.incl.pl1 45 4 03/27/82 0437.1 lisp_atom_fmt.incl.pl1 >ldd>include>lisp_atom_fmt.incl.pl1 46 5 03/27/82 0437.0 lisp_ptr_fmt.incl.pl1 >ldd>include>lisp_ptr_fmt.incl.pl1 47 6 03/27/82 0437.0 lisp_cons_fmt.incl.pl1 >ldd>include>lisp_cons_fmt.incl.pl1 48 7 03/27/82 0437.0 lisp_io.incl.pl1 >ldd>include>lisp_io.incl.pl1 7-5 8 03/27/82 0437.0 lisp_iochan.incl.pl1 >ldd>include>lisp_iochan.incl.pl1 7-45 9 03/27/82 0437.0 lisp_control_chars.incl.pl1 >ldd>include>lisp_control_chars.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 5-17 Array36 internal static bit(36) initial dcl 5-17 Atomic internal static bit(9) initial unaligned dcl 5-17 Atomic36 internal static bit(36) initial dcl 5-17 Atsym internal static bit(9) initial unaligned dcl 5-17 Atsym36 internal static bit(36) initial dcl 5-17 Bigfix internal static bit(9) initial unaligned dcl 5-17 Bigfix36 internal static bit(36) initial dcl 5-17 Bignum internal static bit(9) initial unaligned dcl 5-17 Bignum36 internal static bit(36) initial dcl 5-17 Cons internal static bit(9) initial unaligned dcl 5-17 Cons36 internal static bit(36) initial dcl 5-17 File internal static bit(9) initial unaligned dcl 5-17 File36 internal static bit(36) initial dcl 5-17 Fixed internal static bit(9) initial unaligned dcl 5-17 Fixed36 internal static bit(36) initial dcl 5-17 Float internal static bit(9) initial unaligned dcl 5-17 Float36 internal static bit(36) initial dcl 5-17 MINUS defined fixed bin(71,0) dcl 1-3 NotConsOrAtsym36 internal static bit(36) initial dcl 5-17 Numeric internal static bit(9) initial unaligned dcl 5-17 Numeric36 internal static bit(36) initial dcl 5-17 PLUS defined fixed bin(71,0) dcl 1-3 SLASH defined fixed bin(71,0) dcl 1-3 STAR defined fixed bin(71,0) dcl 1-3 String internal static bit(9) initial unaligned dcl 5-17 String36 internal static bit(36) initial dcl 5-17 Subr internal static bit(9) initial unaligned dcl 5-17 Subr36 internal static bit(36) initial dcl 5-17 SubrNumeric36 internal static bit(36) initial dcl 5-17 System_Subr internal static bit(9) initial unaligned dcl 5-17 System_Subr36 internal static bit(36) initial dcl 5-17 Uncollectable internal static bit(9) initial unaligned dcl 5-17 Undefined internal static bit(72) initial unaligned dcl 5-17 acc based structure level 1 dcl 27 accptr 000102 automatic pointer dcl 27 set ref 58* 60 61* 61 61 addr builtin function dcl 12 ref 58 60 65 65 67 69 69 71 71 74 77 77 77 81 83 84 addrel builtin function dcl 12 ref 61 array_atom defined fixed bin(71,0) dcl 3-6 atom based structure level 1 dcl 4-5 atom_double_words based structure level 1 dcl 4-5 atom_ptrs based structure level 1 dcl 4-5 atomic_constants based fixed bin(71,0) array dcl 27 set ref 60* base defined fixed bin(71,0) dcl 7-17 set ref 69 71 based_ptr based pointer dcl 5-16 ref 65 65 67 69 69 71 71 74 77 77 77 81 83 84 binding_top defined pointer dcl 3-6 catch_frame defined pointer dcl 3-6 cons based structure level 1 dcl 6-5 cons_ptrs based structure level 1 dcl 6-5 cons_types based structure level 1 dcl 6-5 cons_types36 based structure level 1 dcl 6-22 consptr automatic pointer dcl 6-5 ctrlD defined fixed bin(71,0) dcl 9-5 set ref 65 ctrlQ defined fixed bin(71,0) dcl 9-8 ctrlR defined fixed bin(71,0) dcl 9-11 ctrlW defined fixed bin(71,0) dcl 9-14 divide builtin function dcl 12 ref 61 dollar_p_atom defined fixed bin(71,0) dcl 12 err_frame defined pointer dcl 3-6 err_recp defined pointer dcl 3-6 errlist defined fixed bin(71,0) dcl 1-3 set ref 65 eval_frame defined pointer dcl 3-6 fixedb 1 based fixed bin(17,0) level 2 dcl 2-4 set ref 71* 71* 83* fixnum_fmt based structure level 1 dcl 2-4 fixnum_type constant bit(36) initial dcl 2-4 ref 69 84 flag_reset_mask internal static bit(36) initial dcl 8-13 flonum_fmt based structure level 1 dcl 2-4 flonum_type internal static bit(36) initial dcl 2-4 foo automatic fixed bin(71,0) dcl 12 i 000100 automatic fixed bin(17,0) dcl 12 set ref 59* 60* ibase defined fixed bin(71,0) dcl 7-17 set ref 69 71 iochan based structure level 1 dcl 8-13 len based fixed bin(9,0) level 2 packed unsigned unaligned dcl 27 ref 60 61 lisp_alloc_ 000000 constant entry external dcl 12 lisp_boot_ 000011 constant entry external dcl 6 lisp_get_atom_ 000020 constant entry external dcl 12 ref 60 80 82 lisp_io_control_$boot 000016 constant entry external dcl 12 ref 88 lisp_obarray_utils_$init_ht 000012 constant entry external dcl 12 ref 52 lisp_ptr based structure level 1 dcl 5-17 lisp_ptr_type based bit(36) dcl 5-17 lisp_reader_init_$reader_init 000014 constant entry external dcl 12 ref 89 lisp_static_vars_$MINUS external static fixed bin(71,0) dcl 1-3 lisp_static_vars_$PLUS external static fixed bin(71,0) dcl 1-3 lisp_static_vars_$SLASH external static fixed bin(71,0) dcl 1-3 lisp_static_vars_$STAR external static fixed bin(71,0) dcl 1-3 lisp_static_vars_$array_atom external static fixed bin(71,0) dcl 3-6 lisp_static_vars_$atomic_constants 000024 external static fixed bin(17,0) dcl 27 set ref 60 lisp_static_vars_$atomic_constants_names 000026 external static fixed bin(17,0) dcl 27 set ref 58 lisp_static_vars_$base 000054 external static fixed bin(71,0) dcl 7-17 ref 69 69 71 71 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_$ctrlD 000066 external static fixed bin(71,0) dcl 9-5 ref 65 65 lisp_static_vars_$ctrlQ external static fixed bin(71,0) dcl 9-8 lisp_static_vars_$ctrlR external static fixed bin(71,0) dcl 9-11 lisp_static_vars_$ctrlW external static fixed bin(71,0) dcl 9-14 lisp_static_vars_$divov_flag 000030 external static fixed bin(71,0) dcl 38 set ref 75* lisp_static_vars_$dollar_p_atom external static fixed bin(71,0) dcl 12 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_$errlist 000040 external static fixed bin(71,0) dcl 1-3 ref 65 65 lisp_static_vars_$eval_frame external static pointer dcl 3-6 lisp_static_vars_$ibase 000052 external static fixed bin(71,0) dcl 7-17 ref 69 69 71 71 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 000044 external static fixed bin(71,0) dcl 3-6 ref 65 65 74 74 75 75 76 76 77 77 81 81 lisp_static_vars_$number_of_atomic_constants 000022 external static fixed bin(17,0) dcl 27 ref 59 59 lisp_static_vars_$obarray external static fixed bin(71,0) dcl 3-6 lisp_static_vars_$plus_status 000064 external static fixed bin(71,0) dcl 7-17 set ref 75* 75 lisp_static_vars_$prinlength 000034 external static fixed bin(71,0) dcl 38 set ref 77 lisp_static_vars_$prinlevel 000032 external static fixed bin(71,0) dcl 38 set ref 77 lisp_static_vars_$prog_frame external static pointer dcl 3-6 lisp_static_vars_$quote_atom external static fixed bin(71,0) dcl 7-17 lisp_static_vars_$read_print_nl_sync external static bit(36) unaligned dcl 7-17 lisp_static_vars_$readtable external static fixed bin(71,0) dcl 7-17 lisp_static_vars_$s_atom external static fixed bin(71,0) dcl 7-17 lisp_static_vars_$stack_ptr external static pointer dcl 3-6 lisp_static_vars_$star_rset 000050 external static fixed bin(71,0) dcl 3-45 ref 77 77 lisp_static_vars_$status_gctwa 000062 external static fixed bin(71,0) dcl 7-17 set ref 76* 76 lisp_static_vars_$stnopoint 000056 external static fixed bin(71,0) dcl 7-17 ref 80 80 81 81 lisp_static_vars_$t_atom 000042 external static fixed bin(71,0) dcl 3-6 ref 67 67 67 67 lisp_static_vars_$top_level external static label variable dcl 3-6 lisp_static_vars_$toplevel 000036 external static fixed bin(71,0) dcl 1-3 set ref 75* 75 lisp_static_vars_$tty_atom 000060 external static fixed bin(71,0) dcl 7-17 ref 82 82 83 83 84 84 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 000046 external static fixed bin(71,0) array dcl 3-45 ref 74 74 lisp_subroutine_maker_ 000010 constant entry external dcl 12 ref 53 make_lisp_subr_block_ 000000 constant entry external dcl 12 nil defined fixed bin(71,0) dcl 3-6 ref 65 74 75 76 77 81 nil_ptr based pointer dcl 3-6 not_ok_to_read internal static bit(36) initial unaligned dcl 7-9 not_ok_to_read_fixnum internal static bit(36) initial unaligned dcl 7-11 not_ok_to_write internal static bit(36) initial unaligned dcl 7-9 not_ok_to_write_fixnum internal static bit(36) initial unaligned dcl 7-11 number_of_atomic_constants defined fixed bin(17,0) dcl 27 ref 59 obarray defined fixed bin(71,0) dcl 3-6 plus_status defined fixed bin(71,0) dcl 7-17 set ref 75* prog_frame defined pointer dcl 3-6 quote_atom defined fixed bin(71,0) dcl 7-17 read_print_nl_sync defined bit(36) unaligned dcl 7-17 readtable defined fixed bin(71,0) dcl 7-17 s_atom defined fixed bin(71,0) dcl 7-17 stack_ptr defined pointer dcl 3-6 star_rset defined fixed bin(71,0) dcl 3-45 set ref 77 status_gctwa defined fixed bin(71,0) dcl 7-17 set ref 76* stnopoint defined fixed bin(71,0) dcl 7-17 set ref 80* 81 str 0(09) based char level 2 packed unaligned dcl 27 ref 60 substr builtin function dcl 12 t_atom defined fixed bin(71,0) dcl 3-6 set ref 67 67 t_atom_ptr based pointer dcl 3-6 tempp automatic pointer dcl 12 toplevel defined fixed bin(71,0) dcl 1-3 set ref 75* tty_atom defined fixed bin(71,0) dcl 7-17 set ref 82* 83 84 tty_input_chan defined pointer dcl 3-6 tty_output_chan defined pointer dcl 3-6 type_info based bit(36) level 2 dcl 2-4 set ref 69* 69* 84* 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 set ref 74 value based fixed bin(71,0) level 2 dcl 4-5 set ref 65* 65* 67* 74* 77* 77* 77* 81* STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 534 624 236 544 Length 1222 236 70 361 276 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME lisp_boot_ 84 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME lisp_boot_ 000100 i lisp_boot_ 000102 accptr lisp_boot_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. lisp_get_atom_ lisp_io_control_$boot lisp_obarray_utils_$init_ht lisp_reader_init_$reader_init lisp_subroutine_maker_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. lisp_static_vars_$atomic_constants lisp_static_vars_$atomic_constants_names lisp_static_vars_$base lisp_static_vars_$ctrlD lisp_static_vars_$divov_flag lisp_static_vars_$errlist lisp_static_vars_$ibase lisp_static_vars_$nil lisp_static_vars_$number_of_atomic_constants lisp_static_vars_$plus_status lisp_static_vars_$prinlength lisp_static_vars_$prinlevel lisp_static_vars_$star_rset lisp_static_vars_$status_gctwa lisp_static_vars_$stnopoint lisp_static_vars_$t_atom lisp_static_vars_$toplevel lisp_static_vars_$tty_atom lisp_static_vars_$user_intr_array LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000010 52 000016 53 000022 58 000027 59 000032 60 000041 61 000075 62 000105 65 000107 67 000115 69 000120 71 000125 74 000134 75 000140 76 000144 77 000146 80 000155 81 000173 82 000177 83 000215 84 000221 88 000224 89 000230 91 000235 ----------------------------------------------------------- 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