COMPILATION LISTING OF SEGMENT tut_bottom_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 09/13/88 1319.1 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 /* format: style2 */ 7 8 /* Written by J. Siwila 3/30/83 */ 9 10 /* This procedure clears a six line window at the bottom of the Tutorial and then 11* accepts a glossary query and prints the glossary entry. */ 12 13 tut_bottom_: 14 proc (true_io_window_info, io_height, menu_height, Phelp_args, code); 15 16 /* Automatic */ 17 18 dcl io_height fixed bin; 19 dcl line char (40); 20 dcl menu_height fixed bin; 21 dcl 1 bottom_io_window_info 22 like window_position_info; 23 dcl 1 true_io_window_info like window_position_info; 24 dcl bottom_io_switch_name char (32); 25 dcl code fixed bin (35); 26 dcl ME_BOTTOM char (11) init ("tut_bottom_"); 27 dcl n_read fixed bin (21); 28 dcl seg_name char (11) init ("prompt_line"); 29 dcl trim_line char (40) var; 30 31 dcl LOWER_CASE char (26) int static options (constant) init ("abcdefghijklmnopqrstuvwxyz"); 32 dcl UPPER_CASE char (26) int static options (constant) init ("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 33 dcl progress fixed bin; 34 dcl NL char (1) int static options (constant) init (" 35 "); 36 37 /* Builtin */ 38 39 dcl (addr, divide, substr, length, translate) 40 builtin; 41 42 /* Entries */ 43 44 45 dcl ioa_$ioa_switch entry options (variable); 46 dcl ioa_$ioa_switch_nnl entry options (variable); 47 dcl tut_quit_ entry () options (variable); 48 49 50 bottom_io_window_info = window_position_info_version_1; 51 call iox_$control (iox_$user_io, "get_window_info", addr (bottom_io_window_info), code); 52 if code ^= 0 53 then do; 54 call tut_quit_ (code, ME_BOTTOM, "Can't get window info.", iox_$user_io, bottom_io_window_info); 55 return; 56 end; 57 bottom_io_window_info.height = 7; 58 bottom_io_window_info.width = true_io_window_info.extent.width; 59 60 bottom_io_window_info.line = io_height + menu_height - 6; 61 62 call iox_$control (iox_$user_io, "set_window_info", addr (bottom_io_window_info), code); 63 if code ^= 0 64 then do; 65 call tut_quit_ (0, ME_BOTTOM, "Unable to set user i/o window info.", iox_$user_io, 66 bottom_io_window_info); 67 return; 68 end; 69 call window_$clear_window (iox_$user_io, code); 70 if code ^= 0 71 then do; 72 call tut_quit_ (0, ME_BOTTOM, "Unable to clear bottom window.", iox_$user_io, bottom_io_window_info); 73 return; 74 end; 75 76 call ioa_$ioa_switch (iox_$user_io, "^v(-^)^/", bottom_io_window_info.width); 77 call ioa_$ioa_switch_nnl (iox_$user_io, "^7( ^)Term to be explained: "); 78 call iox_$get_line (iox_$user_io, addr (line), length (line), n_read, code); 79 80 trim_line = substr (line, 1, (n_read - 1)); 81 trim_line = translate (trim_line, "_", " "); 82 trim_line = translate (trim_line, LOWER_CASE, UPPER_CASE); 83 84 help_args.info_name = trim_line; 85 86 call window_$position_cursor (iox_$user_io, 2, 1, code); 87 88 if code ^= 0 89 then do; 90 call tut_quit_ (code, ME_BOTTOM, "Unable to move io switch.", iox_$user_io, bottom_io_window_info); 91 return; 92 end; 93 94 call help_ (ME_BOTTOM, Phelp_args, "gi.info", progress, code); 95 if code ^= 0 96 then if progress = 1 97 then call ioa_$ioa_switch (iox_$user_io, "Unable to get help at this time."); 98 else if progress = 2 99 then call ioa_$ioa_switch (iox_$user_io, "Cannot find term you asked for: ^a", trim_line); 100 else if progress = 3 101 then call ioa_$ioa_switch (iox_$user_io, "Cannot find term you asked for: ^a", trim_line); 102 else if progress = 4 103 then call ioa_$ioa_switch (iox_$user_io, "Cannot find term you asked for: ^a", trim_line); 104 else if progress = 5 105 then call ioa_$ioa_switch (iox_$user_io, "Cannot find term you asked for: ^a", trim_line); 106 else call ioa_$ioa_switch (iox_$user_io, "Cannot find term you asked for: ^a", trim_line); 107 108 109 110 111 call iox_$control (iox_$user_io, "set_window_info", addr (true_io_window_info), code); 112 if code ^= 0 113 then do; 114 call tut_quit_ (0, ME_BOTTOM, "Unable to reset user i/o window.", iox_$user_io, true_io_window_info); 115 return; 116 end; 117 118 return; 119 1 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 1 2 1 3 /* Written 05/04/78 by C. D. Tavares */ 1 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 1 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 1 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 1 7 1 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 1 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 1 10 iox_$close entry (pointer, fixed bin (35)), 1 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 1 12 iox_$delete_record entry (pointer, fixed bin (35)), 1 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 1 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 1 15 iox_$err_not_attached entry options (variable), 1 16 iox_$err_not_closed entry options (variable), 1 17 iox_$err_no_operation entry options (variable), 1 18 iox_$err_not_open entry options (variable), 1 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 1 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 1 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 1 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 1 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 1 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 1 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 1 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 1 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 1 28 iox_$propagate entry (pointer), 1 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 1 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 1 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 1 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 1 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 1 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 1 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 1 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 1 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 1 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 1 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 1 40 1 41 dcl (iox_$user_output, 1 42 iox_$user_input, 1 43 iox_$user_io, 1 44 iox_$error_output) external static pointer; 1 45 1 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 120 121 2 1 /* BEGIN: help_args_.incl.pl1 * * * * * */ 2 2 2 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 4 /* */ 2 5 /* Name: help_args_.incl.pl1 */ 2 6 /* */ 2 7 /* This include file declares the structure used by the help command and other subsystems */ 2 8 /* to pass info segment selection and printing control information to the help_ */ 2 9 /* subroutine. This based structure is NEVER allocated. Instead, the caller of help_ */ 2 10 /* must call help_$init to get a pointer to a temporary segment which is used for */ 2 11 /* storage for the structure. The structure contains 5 arrays with refer extents, */ 2 12 /* allowing complete freedom in the numbers of selection values given. Typically, the */ 2 13 /* caller fills in the arrays at the top of the structure first, growing the arrays */ 2 14 /* as each new element is added. After each array is filled, the caller begins filling */ 2 15 /* in the next array. Note that, on return from help_$init, all of the arrays have 0 */ 2 16 /* extents, except that the search_dirs array contains the list of directories to be */ 2 17 /* searched in to find info segments, as defined by the search facility. The caller */ 2 18 /* may of course change or replace these search directories. */ 2 19 /* */ 2 20 /* A legend describing the variable naming convention follows. */ 2 21 /* */ 2 22 /* STARTING LETTER STANDS FOR */ 2 23 /* P pointer to */ 2 24 /* L length of */ 2 25 /* D descriptor of */ 2 26 /* S switch */ 2 27 /* V version */ 2 28 /* */ 2 29 /* Status */ 2 30 /* */ 2 31 /* 0) Created: October, 1978 by Gary Dixon */ 2 32 /* 1) Modified: June 4, 1983 by Gary Dixon - add Sctl.inhibit_errors flag. */ 2 33 /* 2) Modified: April, 1985 by L.Adams - use Vhelp_args_2. */ 2 34 /* */ 2 35 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 36 2 37 /****^ HISTORY COMMENTS: 2 38* 1) change(86-03-07,LJAdams), approve(86-03-07,MCR7327), 2 39* audit(86-03-10,Lippard), install(86-04-24,MR12.0-1048): 2 40* Declares structure used by the help command and other subsystems to pass 2 41* info segment selection and printing control information the help_ 2 42* subroutine. 2 43* 2) change(87-01-26,LJAdams), approve(87-09-03,MCR7766), 2 44* audit(88-05-03,GDixon), install(88-09-13,MR12.2-1109): 2 45* Added lep to Sctl. 2 46* Added Sctl.cs to indicate if search or section requests are to be case 2 47* sensitive or not. 2 48* Changed version to Vhelp_args_3. 2 49* 3) change(88-02-12,LJAdams), approve(88-03-07,MCR7857), 2 50* audit(88-05-03,GDixon), install(88-09-13,MR12.2-1109): 2 51* Added help_data_ptr to point to a second help_args structure that will be 2 52* used for list_requests. 2 53* END HISTORY COMMENTS */ 2 54 2 55 dcl 1 help_args aligned based (Phelp_args), /* help's input arguments. */ 2 56 2 version fixed bin, /* = 3, currently. Use Vhelp_args_3. */ 2 57 /* (set by help_$init, checked by caller) */ 2 58 2 Sctl, /* control argument switches. */ 2 59 /* (SET BY CALLER OF help_) */ 2 60 (3 he_only, /* print only a heading, nothing else. */ 2 61 3 he_pn, /* when heading printed, include info pathname. */ 2 62 3 he_info_name, /* when heading printed, include info_name. */ 2 63 3 he_counts, /* when heading printed, include line counts. */ 2 64 /* If none of the 3 switches above are set, */ 2 65 /* then only info header is incl. in heading. */ 2 66 3 title, /* -title */ 2 67 3 scn, /* -section */ 2 68 3 srh, /* -search */ 2 69 3 bf, /* -brief */ 2 70 3 ca, /* -control_arg */ 2 71 3 ep, /* -entry_point */ 2 72 3 all, /* -all */ 2 73 3 lep, /* -lep */ 2 74 3 cs, /* -case_sensitive */ 2 75 3 inhibit_errors) /* inhibits error diagnostics when desired */ 2 76 /* information is not found. Useful for */ 2 77 /* subsystems like ted that want to diagnose */ 2 78 /* their own errors. */ 2 79 bit(1) unal, 2 80 3 mbz1 bit(22) unal, 2 81 2 Nsearch_dirs fixed bin, /* number of info_segment (or other) search dirs. */ 2 82 /* (set by help_$init, CALLER CAN CHANGE) */ 2 83 2 Npaths fixed bin, /* number of info segment names. */ 2 84 /* (SET BY CALLER OF help_) */ 2 85 2 Ncas fixed bin, /* number of control arg names given with -ca */ 2 86 /* (SET BY CALLER OF help_) */ 2 87 2 Nscns fixed bin, /* number of section substrings. */ 2 88 /* (SET BY CALLER OF help_) */ 2 89 2 Nsrhs fixed bin, /* number of search strings. */ 2 90 /* (SET BY CALLER OF help_) */ 2 91 2 min_Lpgh fixed bin, /* minimum length of a paragraph. */ 2 92 /* (set by help_$init, CALLER CAN CHANGE) */ 2 93 2 max_Lpgh fixed bin, /* maximum lines in group of aggregated paragraphs*/ 2 94 /* or in paragraphs constructed by help_. */ 2 95 /* (set by help_$init, CALLER CAN CHANGE) */ 2 96 2 Lspace_between_infos fixed bin, /* spaces inserted between infos when several */ 2 97 /* printed by one invocation. */ 2 98 /* (set by help_$init, CALLER CAN CHANGE) */ 2 99 2 min_date_time fixed bin(71), /* do not process infos modified before this date.*/ 2 100 /* (SET BY CALLER OF help_) */ 2 101 2 sci_ptr ptr, /* sci_ptr when help_ is invoked by a subsystem. */ 2 102 /* This must be set to null when not invoked */ 2 103 /* from a subsystem. */ 2 104 2 help_data_ptr ptr, /* ptr to second help_args (used for list rqts) */ 2 105 2 pad2 (6) fixed bin, /* reserved for future expansion. */ 2 106 2 107 /* End of fixed-length part of the structure. */ 2 108 2 109 2 search_dirs (0 refer (help_args.Nsearch_dirs)) 2 110 char (168) unal, /* directories help_ will look in to find info */ 2 111 /* segments when relative paths (without < or >)*/ 2 112 /* are given. When help_$init is called, the */ 2 113 /* current search rules (from a search list of */ 2 114 /* caller's choice) will be given here. Caller */ 2 115 /* may modify this list if desired before */ 2 116 /* calling help_. */ 2 117 2 path (0 refer (help_args.Npaths)), /* names of sought info segments. */ 2 118 3 value char(425) varying, /* These are the args themselves, without */ 2 119 /* processing by expand_pathname_, etc. */ 2 120 /* Their length is length(path) + length("$") */ 2 121 /* + length(entry_point_name). */ 2 122 /* Note that entry_point_names can be 256 chars.*/ 2 123 /* (SET BY CALLER OF help_) */ 2 124 3 info_name char(32) unal, /* name of logical info to be printed. */ 2 125 /* (SET BY CALLER OF help_) */ 2 126 /* "" = help_ should set this to entry part */ 2 127 /* of path.value, minus the suffix. */ 2 128 /* other = logical info name not a name on the */ 2 129 /* physical info segment. */ 2 130 3 dir (1) char(168) unal, /* dir part of a pathname (set by help_). */ 2 131 3 ent char(32) unal, /* ent part of name (set by help_). */ 2 132 3 ep char(32) varying, /* entry point part of name. (set by help_) */ 2 133 3 code fixed bin(35), /* error code while processing this path. */ 2 134 /* (set by help_) */ 2 135 3 S, /* switches indicating path type. */ 2 136 (4 pn_ctl_arg, /* -pn ctl given before this path. */ 2 137 /* (SET BY CALLER OF help_) */ 2 138 4 info_name_not_starname, /* caller-supplied path.info_name is not a */ 2 139 /* star name, even if it has * or ? chars. */ 2 140 /* (SET BY CALLER OF help_) */ 2 141 4 less_greater, /* A < or > appears in path.value. */ 2 142 /* (set by help_) */ 2 143 4 starname_ent, /* on if ent is a starname. */ 2 144 /* (set by help_) */ 2 145 4 starname_info_name, /* on if info_name is a starname. */ 2 146 /* (set by help_) */ 2 147 4 separate_info_name) bit(1) unal, /* on if info_name given by caller. */ 2 148 /* (set by help_) */ 2 149 4 pad3 bit(30) unal, 2 150 2 ca (0 refer (help_args.Ncas)) /* the ctl_arg names, without leading - just as */ 2 151 char(32) varying, /* req'd by the -ca ctl_arg of help. */ 2 152 /* (SET BY CALLER OF help_) */ 2 153 2 scn (0 refer (help_args.Nscns)) /* substrings sought in section titles. */ 2 154 char(80) varying, /* (SET BY CALLER OF help_) */ 2 155 2 srh (0 refer (help_args.Nsrhs)) /* search strings. */ 2 156 char(80) varying, /* (SET BY CALLER OF help_) */ 2 157 Phelp_args ptr, 2 158 Vhelp_args_3 fixed bin int static options(constant) init(3); 2 159 2 160 dcl help_ entry (char(*), ptr, char(*), fixed bin, fixed bin(35)), 2 161 help_$init entry (char(*), char(*), char(*), fixed bin, ptr, fixed bin(35)), 2 162 help_$term entry (char(*), ptr, fixed bin(35)); 2 163 2 164 /* END OF: help_args_.incl.pl1 * * * * * */ 122 123 3 1 /* begin include fine window_dcls.incl.pl1 BIM June 1981 */ 3 2 /* Modified 9 October 1983 by Jon A. Rochlis to add window_$edit_line. */ 3 3 3 4 /* format: style3 */ 3 5 3 6 declare window_$bell entry (pointer, fixed binary (35)); 3 7 declare window_$clear_region 3 8 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary, fixed binary (35)); 3 9 declare window_$clear_to_end_of_line 3 10 entry (pointer, fixed binary (35)); 3 11 declare window_$clear_to_end_of_window 3 12 entry (pointer, fixed binary (35)); 3 13 declare window_$clear_window 3 14 entry (pointer, fixed binary (35)); 3 15 declare window_$delete_chars 3 16 entry (pointer, fixed binary, fixed binary (35)); 3 17 declare window_$get_cursor_position 3 18 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 3 19 3 20 /* Call window_$get_echoed_chars (iocb_ptr, n_to_read, read_buffer, n_read, read_break, code); */ 3 21 3 22 declare window_$get_echoed_chars 3 23 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 3 24 fixed binary (35)); 3 25 declare window_$get_unechoed_chars 3 26 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 3 27 fixed binary (35)); 3 28 declare window_$insert_text entry (pointer, character (*), fixed binary (35)); 3 29 declare window_$overwrite_text 3 30 entry (pointer, character (*), fixed binary (35)); 3 31 declare window_$position_cursor 3 32 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 3 33 3 34 /* Call window_$position_cursor_rel (iocb_ptr, delta_line, delta_column, code); */ 3 35 3 36 declare window_$position_cursor_rel 3 37 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 3 38 3 39 /* Call window_$scroll_region (iocb_ptr, first_line_of_region, n_lines_of_region, distance_to_scroll_region_negative_is_up, 3 40* code); */ 3 41 3 42 declare window_$scroll_region 3 43 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary (35)); 3 44 declare window_$sync entry (pointer, fixed binary (35)); 3 45 3 46 /* Call window_$write_raw_text (iocb_ptr, text_string, code); */ 3 47 3 48 declare window_$write_raw_text 3 49 entry (pointer, character (*), fixed binary (35)); 3 50 3 51 /* Call window_$write_sync_read (iocb_ptr, prompt_string, n_to_read, read_buffer, n_read, break_char, code); */ 3 52 3 53 declare window_$write_sync_read 3 54 entry (pointer, character (*), fixed bin (21), character (*), fixed binary (21), 3 55 character (1) var, fixed binary (35)); 3 56 3 57 /* Call window_$change_line (iocb_ptr, new_line, code); */ 3 58 3 59 declare window_$change_line entry (pointer, fixed binary, fixed binary (35)); 3 60 3 61 /* Call window_$change_column (iocb_ptr, new_column, code); */ 3 62 3 63 declare window_$change_column 3 64 entry (pointer, fixed binary, fixed binary (35)); 3 65 3 66 /* Call window_$get_one_unechoed (iocb_ptr, char_or_len_0, block_flag, code); */ 3 67 declare ( 3 68 window_$get_one_unechoed, 3 69 window_$get_one_unechoed_char 3 70 ) entry (pointer, character (1) var, bit (1) aligned, fixed binary (35)); 3 71 3 72 declare window_$create entry (pointer, pointer, pointer, fixed binary (35)); 3 73 3 74 declare window_$destroy entry (pointer, fixed binary (35)); 3 75 3 76 declare window_$edit_line entry (pointer, pointer, pointer, fixed bin(21), fixed bin(21), fixed bin(35)); 3 77 3 78 /* call window_$edit_line (iocb_ptr, window_edit_line_info_ptr, buffer_ptr, 3 79* buffer_len, n_returned, code); */ 3 80 3 81 3 82 /* end include file window_dcls.incl.pl1 */ 124 125 4 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 4 2 /* format: style3 */ 4 3 4 4 /* Modified 26 January 1982 by William York to add the set_more_handler 4 5* and reset_more_handler control orders. */ 4 6 /* Modified October 1982 by WMY to add set and get_token_characters, 4 7* set and get_more_prompt. */ 4 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 4 9* structure. */ 4 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 4 11* partial screen width windows. */ 4 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 4 13* This should be removed when window_info.incl.pl1 is created. */ 4 14 /* Modified 29 February 1984 by Barmar to add version 1 4 15* get_editor_key_bindings_info. */ 4 16 /* Modified 1 March 1984 by Barmar to add version 1 4 17* set_editor_key_bindings_info. */ 4 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 4 19* line_editor_key_bindings_info, which includes the name, description, and 4 20* info path */ 4 21 4 22 /* structure for the set_window_info and get_window_info 4 23* control orders. */ 4 24 4 25 dcl 1 window_position_info 4 26 based (window_position_info_ptr), 4 27 2 version fixed bin, 4 28 2 origin, 4 29 3 column fixed bin, 4 30 3 line fixed bin, 4 31 2 extent, 4 32 3 width fixed bin, 4 33 3 height fixed bin; 4 34 4 35 dcl (window_position_info_version, window_position_info_version_1) 4 36 fixed bin internal static init (1) options (constant); 4 37 dcl window_position_info_ptr 4 38 pointer; 4 39 4 40 /* structure for the set_window_status and get_window_status 4 41* control orders */ 4 42 4 43 declare window_status_info_ptr 4 44 pointer; 4 45 declare 1 window_status_info 4 46 aligned based (window_status_info_ptr), 4 47 2 version fixed bin, 4 48 2 status_string bit (36) aligned; /* string (window_status) */ 4 49 /* see window_status.incl.pl1 for the contents of this string */ 4 50 4 51 4 52 declare (window_status_version, window_status_version_1) 4 53 fixed bin internal static init (1) options (constant); 4 54 4 55 /* info structure for the set_more_responses and get_more_responses control 4 56* orders */ 4 57 4 58 4 59 dcl 1 more_responses_info 4 60 aligned based (more_responses_info_ptr), 4 61 2 version fixed bin, 4 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 4 63 2 n_noes fixed bin, 4 64 2 yeses char (32) unaligned, 4 65 2 noes char (32) unaligned; 4 66 4 67 dcl (more_responses_info_version_1, more_responses_version) 4 68 fixed bin internal static init (1) options (constant); 4 69 dcl more_responses_info_ptr 4 70 pointer; 4 71 4 72 /* structure for the set_break_table and get_break_table 4 73* control orders */ 4 74 4 75 declare break_table_ptr pointer; 4 76 declare 1 break_table_info aligned based (break_table_ptr), 4 77 2 version fixed bin, 4 78 2 breaks (0:127) bit (1) unaligned; 4 79 4 80 declare (break_table_info_version, break_table_info_version_1) 4 81 fixed bin init (1) internal static options (constant); 4 82 4 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 4 84 2 version fixed bin, 4 85 2 flags unaligned, 4 86 3 old_handler_valid 4 87 bit(1), 4 88 3 pad bit(35), 4 89 2 more_handler entry (pointer, bit(1) aligned), 4 90 2 old_more_handler entry (pointer, bit(1) aligned); 4 91 4 92 declare more_handler_info_ptr pointer; 4 93 4 94 declare (more_handler_info_version, more_handler_info_version_3) 4 95 fixed bin internal static options (constant) init (3); 4 96 4 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 4 98 2 version char(8), 4 99 2 token_character_count 4 100 fixed bin, 4 101 2 token_characters 4 102 char (128) unaligned; 4 103 4 104 declare token_characters_info_ptr pointer; 4 105 4 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 4 107 4 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 4 109 2 version char(8), 4 110 2 more_prompt char(80); 4 111 4 112 declare more_prompt_info_ptr pointer; 4 113 4 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 4 115 4 116 /* Line editor stuff ... */ 4 117 4 118 dcl line_editor_key_binding_info_ptr 4 119 pointer; 4 120 4 121 dcl line_editor_binding_count 4 122 fixed bin; 4 123 dcl line_editor_longest_sequence 4 124 fixed bin; 4 125 /* For each binding, action defines what to do for that sequence. Constants 4 126* are defined in window_editor_values.incl.pl1. Only if action is set to 4 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 4 128 4 129 dcl 1 line_editor_key_binding_info 4 130 aligned based (line_editor_key_binding_info_ptr), 4 131 2 version char(8), 4 132 2 binding_count fixed bin, 4 133 2 longest_sequence fixed bin, 4 134 2 bindings (line_editor_binding_count refer 4 135 (line_editor_key_binding_info.binding_count)), 4 136 3 sequence char(line_editor_longest_sequence refer 4 137 (line_editor_key_binding_info.longest_sequence)) varying, 4 138 3 action fixed bin, 4 139 3 numarg_action fixed binary, 4 140 3 editor_routine entry (pointer, fixed bin(35)), 4 141 3 name char (64) varying unaligned, 4 142 3 description char (256) varying unaligned, 4 143 3 info_path unaligned, 4 144 4 info_dir char (168), 4 145 4 info_entry char (32); 4 146 4 147 4 148 dcl line_editor_key_binding_info_version_3 4 149 char(8) static options (constant) init ("lekbi003"); 4 150 4 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 4 152 2 version char (8), 4 153 2 flags, 4 154 3 entire_state bit (1) unaligned, 4 155 3 mbz bit (35) unaligned, 4 156 2 key_binding_info_ptr ptr, 4 157 2 entire_state_ptr ptr; 4 158 4 159 dcl get_editor_key_bindings_info_ptr ptr; 4 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 4 161 4 162 dcl 1 set_editor_key_bindings_info aligned 4 163 based (set_editor_key_bindings_info_ptr), 4 164 2 version char (8), 4 165 2 flags, 4 166 3 replace bit (1) unaligned, 4 167 3 update bit (1) unaligned, 4 168 3 mbz bit (34) unaligned, 4 169 2 key_binding_info_ptr ptr; 4 170 4 171 dcl set_editor_key_bindings_info_ptr ptr; 4 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 4 173 4 174 /* This should be moved to window_info.incl.pl1 when that include file is 4 175* created. JR 2/1/84 */ 4 176 4 177 dcl 1 window_edit_line_info 4 178 based (window_edit_line_info_ptr), 4 179 2 version char (8), 4 180 2 line_ptr ptr, 4 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 4 182 4 183 dcl window_edit_line_info_version_1 4 184 char (8) static options (constant) init ("wedl0001"); 4 185 4 186 dcl window_edit_line_info_ptr 4 187 ptr; 4 188 4 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 126 127 128 end tut_bottom_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/13/88 1315.0 tut_bottom_.pl1 >spec>install>MR12.2-1109>tut_bottom_.pl1 120 1 05/23/83 0916.6 iox_dcls.incl.pl1 >ldd>include>iox_dcls.incl.pl1 122 2 09/13/88 1257.6 help_args_.incl.pl1 >spec>install>MR12.2-1109>help_args_.incl.pl1 124 3 09/12/84 0916.7 window_dcls.incl.pl1 >ldd>include>window_dcls.incl.pl1 126 4 09/12/84 0916.7 window_control_info.incl.pl1 >ldd>include>window_control_info.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. LOWER_CASE 000007 constant char(26) initial packed unaligned dcl 31 ref 82 ME_BOTTOM 000117 automatic char(11) initial packed unaligned dcl 26 set ref 26* 54* 65* 72* 90* 94* 114* Npaths 3 based fixed bin(17,0) level 2 dcl 2-55 ref 84 Nsearch_dirs 2 based fixed bin(17,0) level 2 dcl 2-55 ref 84 84 Phelp_args parameter pointer dcl 2-55 set ref 13 84 94* UPPER_CASE 000000 constant char(26) initial packed unaligned dcl 32 ref 82 addr builtin function dcl 39 ref 51 51 62 62 78 78 111 111 bottom_io_window_info 000112 automatic structure level 1 unaligned dcl 21 set ref 50* 51 51 54* 62 62 65* 72* 90* code parameter fixed bin(35,0) dcl 25 set ref 13 51* 52 54* 62* 63 69* 70 78* 86* 88 90* 94* 95 111* 112 extent 3 parameter structure level 2 in structure "true_io_window_info" unaligned dcl 23 in procedure "tut_bottom_" extent 3 000112 automatic structure level 2 in structure "bottom_io_window_info" unaligned dcl 21 in procedure "tut_bottom_" height 4 000112 automatic fixed bin(17,0) level 3 dcl 21 set ref 57* help_ 000024 constant entry external dcl 2-160 ref 94 help_args based structure level 1 dcl 2-55 info_name based char(32) array level 3 packed packed unaligned dcl 2-55 set ref 84* io_height parameter fixed bin(17,0) dcl 18 ref 13 60 ioa_$ioa_switch 000010 constant entry external dcl 45 ref 76 95 98 100 102 104 106 ioa_$ioa_switch_nnl 000012 constant entry external dcl 46 ref 77 iox_$control 000016 constant entry external dcl 1-8 ref 51 62 111 iox_$get_line 000020 constant entry external dcl 1-8 ref 78 iox_$user_io 000022 external static pointer dcl 1-41 set ref 51* 54* 62* 65* 69* 72* 76* 77* 78* 86* 90* 95* 98* 100* 102* 104* 106* 111* 114* length builtin function dcl 39 ref 78 78 line 2 000112 automatic fixed bin(17,0) level 3 in structure "bottom_io_window_info" dcl 21 in procedure "tut_bottom_" set ref 60* line 000100 automatic char(40) packed unaligned dcl 19 in procedure "tut_bottom_" set ref 78 78 78 78 80 menu_height parameter fixed bin(17,0) dcl 20 ref 13 60 n_read 000122 automatic fixed bin(21,0) dcl 27 set ref 78* 80 origin 1 000112 automatic structure level 2 unaligned dcl 21 path based structure array level 2 dcl 2-55 progress 000141 automatic fixed bin(17,0) dcl 33 set ref 94* 95 98 100 102 104 seg_name 000123 automatic char(11) initial packed unaligned dcl 28 set ref 28* substr builtin function dcl 39 ref 80 translate builtin function dcl 39 ref 81 82 trim_line 000126 automatic varying char(40) dcl 29 set ref 80* 81* 81 82* 82 84 98* 100* 102* 104* 106* true_io_window_info parameter structure level 1 unaligned dcl 23 set ref 13 111 111 114* tut_quit_ 000014 constant entry external dcl 47 ref 54 65 72 90 114 width 3 000112 automatic fixed bin(17,0) level 3 in structure "bottom_io_window_info" dcl 21 in procedure "tut_bottom_" set ref 58* 76* width 3 parameter fixed bin(17,0) level 3 in structure "true_io_window_info" dcl 23 in procedure "tut_bottom_" set ref 58 window_$clear_window 000026 constant entry external dcl 3-13 ref 69 window_$position_cursor 000030 constant entry external dcl 3-31 ref 86 window_position_info based structure level 1 unaligned dcl 4-25 window_position_info_version_1 constant fixed bin(17,0) initial dcl 4-35 ref 50 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. NL internal static char(1) initial packed unaligned dcl 34 Vhelp_args_3 internal static fixed bin(17,0) initial dcl 2-55 bottom_io_switch_name automatic char(32) packed unaligned dcl 24 break_table_info based structure level 1 dcl 4-76 break_table_info_version internal static fixed bin(17,0) initial dcl 4-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 4-80 break_table_ptr automatic pointer dcl 4-75 divide builtin function dcl 39 get_editor_key_bindings_info based structure level 1 dcl 4-151 get_editor_key_bindings_info_ptr automatic pointer dcl 4-159 get_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 4-160 help_$init 000000 constant entry external dcl 2-160 help_$term 000000 constant entry external dcl 2-160 iox_$attach_loud 000000 constant entry external dcl 1-8 iox_$attach_name 000000 constant entry external dcl 1-8 iox_$attach_ptr 000000 constant entry external dcl 1-8 iox_$close 000000 constant entry external dcl 1-8 iox_$close_file 000000 constant entry external dcl 1-8 iox_$delete_record 000000 constant entry external dcl 1-8 iox_$destroy_iocb 000000 constant entry external dcl 1-8 iox_$detach 000000 constant entry external dcl 1-8 iox_$detach_iocb 000000 constant entry external dcl 1-8 iox_$err_no_operation 000000 constant entry external dcl 1-8 iox_$err_not_attached 000000 constant entry external dcl 1-8 iox_$err_not_closed 000000 constant entry external dcl 1-8 iox_$err_not_open 000000 constant entry external dcl 1-8 iox_$error_output external static pointer dcl 1-41 iox_$find_iocb 000000 constant entry external dcl 1-8 iox_$find_iocb_n 000000 constant entry external dcl 1-8 iox_$get_chars 000000 constant entry external dcl 1-8 iox_$look_iocb 000000 constant entry external dcl 1-8 iox_$modes 000000 constant entry external dcl 1-8 iox_$move_attach 000000 constant entry external dcl 1-8 iox_$open 000000 constant entry external dcl 1-8 iox_$open_file 000000 constant entry external dcl 1-8 iox_$position 000000 constant entry external dcl 1-8 iox_$propagate 000000 constant entry external dcl 1-8 iox_$put_chars 000000 constant entry external dcl 1-8 iox_$read_key 000000 constant entry external dcl 1-8 iox_$read_length 000000 constant entry external dcl 1-8 iox_$read_record 000000 constant entry external dcl 1-8 iox_$rewrite_record 000000 constant entry external dcl 1-8 iox_$seek_key 000000 constant entry external dcl 1-8 iox_$user_input external static pointer dcl 1-41 iox_$user_output external static pointer dcl 1-41 iox_$write_record 000000 constant entry external dcl 1-8 line_editor_binding_count automatic fixed bin(17,0) dcl 4-121 line_editor_key_binding_info based structure level 1 dcl 4-129 line_editor_key_binding_info_ptr automatic pointer dcl 4-118 line_editor_key_binding_info_version_3 internal static char(8) initial packed unaligned dcl 4-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 4-123 more_handler_info based structure level 1 dcl 4-83 more_handler_info_ptr automatic pointer dcl 4-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 4-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 4-94 more_prompt_info based structure level 1 dcl 4-108 more_prompt_info_ptr automatic pointer dcl 4-112 more_prompt_info_version_1 internal static char(8) initial packed unaligned dcl 4-114 more_responses_info based structure level 1 dcl 4-59 more_responses_info_ptr automatic pointer dcl 4-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 4-67 more_responses_version internal static fixed bin(17,0) initial dcl 4-67 set_editor_key_bindings_info based structure level 1 dcl 4-162 set_editor_key_bindings_info_ptr automatic pointer dcl 4-171 set_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 4-172 token_characters_info based structure level 1 dcl 4-97 token_characters_info_ptr automatic pointer dcl 4-104 token_characters_info_version_1 internal static char(8) initial packed unaligned dcl 4-106 window_$bell 000000 constant entry external dcl 3-6 window_$change_column 000000 constant entry external dcl 3-63 window_$change_line 000000 constant entry external dcl 3-59 window_$clear_region 000000 constant entry external dcl 3-7 window_$clear_to_end_of_line 000000 constant entry external dcl 3-9 window_$clear_to_end_of_window 000000 constant entry external dcl 3-11 window_$create 000000 constant entry external dcl 3-72 window_$delete_chars 000000 constant entry external dcl 3-15 window_$destroy 000000 constant entry external dcl 3-74 window_$edit_line 000000 constant entry external dcl 3-76 window_$get_cursor_position 000000 constant entry external dcl 3-17 window_$get_echoed_chars 000000 constant entry external dcl 3-22 window_$get_one_unechoed 000000 constant entry external dcl 3-67 window_$get_one_unechoed_char 000000 constant entry external dcl 3-67 window_$get_unechoed_chars 000000 constant entry external dcl 3-25 window_$insert_text 000000 constant entry external dcl 3-28 window_$overwrite_text 000000 constant entry external dcl 3-29 window_$position_cursor_rel 000000 constant entry external dcl 3-36 window_$scroll_region 000000 constant entry external dcl 3-42 window_$sync 000000 constant entry external dcl 3-44 window_$write_raw_text 000000 constant entry external dcl 3-48 window_$write_sync_read 000000 constant entry external dcl 3-53 window_edit_line_info based structure level 1 unaligned dcl 4-177 window_edit_line_info_ptr automatic pointer dcl 4-186 window_edit_line_info_version_1 internal static char(8) initial packed unaligned dcl 4-183 window_position_info_ptr automatic pointer dcl 4-37 window_position_info_version internal static fixed bin(17,0) initial dcl 4-35 window_status_info based structure level 1 dcl 4-45 window_status_info_ptr automatic pointer dcl 4-43 window_status_version internal static fixed bin(17,0) initial dcl 4-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 4-52 NAME DECLARED BY EXPLICIT CONTEXT. tut_bottom_ 000174 constant entry external dcl 13 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2032 2064 1711 2042 Length 2354 1711 32 254 120 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME tut_bottom_ 147 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME tut_bottom_ 000100 line tut_bottom_ 000112 bottom_io_window_info tut_bottom_ 000117 ME_BOTTOM tut_bottom_ 000122 n_read tut_bottom_ 000123 seg_name tut_bottom_ 000126 trim_line tut_bottom_ 000141 progress tut_bottom_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. help_ ioa_$ioa_switch ioa_$ioa_switch_nnl iox_$control iox_$get_line tut_quit_ window_$clear_window window_$position_cursor THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_io LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 13 000167 26 000201 28 000207 50 000214 51 000222 52 000254 54 000257 55 000316 57 000317 58 000321 60 000324 62 000330 63 000362 65 000365 67 000422 69 000423 70 000434 72 000437 73 000474 76 000475 77 000520 78 000540 80 000564 81 000575 82 000613 84 000632 86 000670 88 000712 90 000715 91 000751 94 000752 95 001005 98 001034 100 001063 102 001112 104 001141 106 001170 111 001214 112 001247 114 001252 115 001307 118 001310 ----------------------------------------------------------- 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