/* Begin include file ..... debug_fnp_data.incl.pl1 */ /* Describes various structures used by the debug_fnp command */ /* Written February 1977 by Larry Johnson */ /* Structures describing a symbol table used by the debug_fnp command, to find values for common FNP symbols. */ dcl db_fnp_symbols_$db_fnp_symbols_ ext; dcl symbol_tablep ptr; dcl 1 symbol_table aligned based (symbol_tablep), 2 cnt fixed bin, /* Number of entries */ 2 maxcnt fixed bin, /* Max count */ 2 entry (symbol_table.cnt) unal, 3 one_symbol like sym unal; dcl symp ptr; /* Pointer to one symbol */ dcl 1 sym unal based (symp), 2 name char (6), 2 value fixed bin (17), 2 len fixed bin (17), /* Number of words */ 2 reloc fixed bin (17), 2 type fixed bin (17), 2 flag_mem char (6), /* If non blank, name of word in which this is a flag */ 2 explain bit (18), /* Offset to explanation for symbol */ 2 pad bit (18); dcl exptextp ptr; dcl 1 exptext aligned based (exptextp), /* Symbol explanation entry */ 2 len fixed bin (8) unal, 2 data char (exptext.len) unal; /* Values for sym.reloc, which is relocation required to find the symbol */ dcl (reloc_abs init (0), /* Value is absolute */ reloc_tib init (1), /* Value is relative to current tib addr */ reloc_hwcm init (2), /* Value is relative to current hwcm */ reloc_sfcm init (3), /* Value is relative to software comm region */ reloc_meters init (4)) /* Value is relative to tib meters */ int static options (constant); /* Values for sym.type, which is the mode to be used in displaying symbol */ dcl (type_oct init (0), /* Octal, default for most symbols */ type_char init (1), /* Ascii characters */ type_addr init (2), /* Address to be converted to mod|offset */ type_clock init (3), /* Multics clock value */ type_inst init (4), /* Machine instruction */ type_op init (5), /* Interpreter opblock format */ type_dec init (6), /* Decimal */ type_bit init (7), /* In bits */ type_ebcdic init (8)) /* 8-bit ebcdic characters */ int static options (constant); dcl long_type_names (0:8) char (12) int static options (constant) init ( "octal", "character", "address", "clock", "instruction", "opblock", "decimal", "bit", "ebcdic"); dcl short_type_names (0:8) char (4) int static options (constant) init ( "oct", "ch", "addr", "ck", "inst", "op", "dec", "bit", "ebc"); /* Structure of suplmental data used in evaluating expressions */ dcl expr_infop ptr; dcl 1 expr_info aligned based (expr_infop), 2 flags, 3 star_known bit (1) unal, /* Value of "*" is known */ 3 tib_known bit (1) unal, /* TIB addresses may be used */ 3 hwcm_known bit (1) unal, /* HWCM address may be used */ 3 sfcm_known bit (1) unal, /* SFCM address may be used */ 3 pad bit (32) unal, 2 star_addr fixed bin, /* Value of "*" */ 2 tib_addr fixed bin, /* Address of TIB */ 2 hwcm_addr fixed bin, /* Address of HWCM */ 2 sfcm_addr fixed bin, /* Address of SFCM */ 2 type fixed bin, /* Expression type (mode for printing) */ 2 len fixed bin, /* Implied length of expression */ 2 user_tablep ptr; /* Pointer to a user symbol table */ /* Structure of opcode table of machine instructions */ dcl db_fnp_opcodes_$ ext; dcl optablep ptr; dcl 1 optable aligned based (optablep), 2 cnt fixed bin, 2 entry (optable.cnt) unal, 3 one_op like op; dcl opp ptr; dcl 1 op unal based (opp), 2 name char (6), /* The mneumonic */ 2 code bit (12), /* The opcode */ 2 mask bit (12), /* Mask that says where the opcode is */ 2 type fixed bin (11), /* Type of display required */ 2 pad bit (18); /* Values for op.type are: 0 - storage reference 1 - non-storage reference (immediate), 2 - non-storage reference (iacxn only), 3 - non-storage reference (shifts), 4 - non-storage reference (no operands) */ /* Stuctures used while parsing commands into operands */ dcl cmd_infop ptr; dcl 1 cmd_info aligned based (cmd_infop), 2 inbuf char (256), /* For reading lines */ 2 opbuf char (256), /* Used for operand in undoubling quotes */ 2 commandp ptr, /* Address of unparsed part of command */ 2 commandl fixed bin, /* Length of unparsed part */ 2 operandp ptr, /* Address of current operand */ 2 operandl fixed bin, /* And its length */ 2 error bit (1), /* Set if error parsing operand */ 2 endline bit (1), /* Set if no more operands on line */ 2 opstring bit (1), /* Set if operand was unquoted string */ 2 flush bit (1), /* If set, rest of input line will be ignored */ 2 envp ptr; /* Pointer to the debug_fnp environment structure */ dcl command char (cmd_info.commandl) based (cmd_info.commandp); dcl operand char (cmd_info.operandl) based (cmd_info.operandp); /* The following structure describes the current debug_fnp environment. */ /* It specifies whether we are working on a dump, fnp, core image, etc. */ dcl envp ptr; dcl 1 env aligned based (envp), 2 corep ptr, /* Ptr to current dump or core-image. Null means live FNP */ 2 fnp fixed bin, /* Current fnp number */ 2 dump_dir char (168) unal, /* Directory where dumps are found */ 2 dir char (168) unal, /* Directory for current dump or core image */ 2 ename char (32) unal, /* Ename for current dump or core image */ 2 tty_name char (32), /* Name of current channel */ 2 segp ptr, /* Pointer to base of current segment */ 2 flags unal, 3 fnps_configured bit (8), /* Says which FNP's appear in config deck */ 3 fnp_sw bit (1), /* 1 if currently working on fnp */ 3 image_sw bit (1), /* 1 if currently working on a core-image */ 3 dump_sw bit (1), /* 1 if current working on a dump */ 3 fdump_sw bit (1), /* 1 if current dump is a fdump */ 3 pad bit (24), 2 dump_time fixed bin (71); /* Clock time dump occured */ /* Structure of data defining table of interpreter opblock names */ dcl db_fnp_opblocks_$ ext; dcl opblock_tablep ptr; dcl 1 opblock_table aligned based (opblock_tablep), 2 cnt fixed bin, 2 name (0:opblock_table.cnt) char (6) unal; /* End include file ..... debug_fnp_data.incl.pl1 */ */ ----------------------------------------------------------- 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 */