285 lines
21 KiB
C
285 lines
21 KiB
C
#include <stdio.h>
|
|
|
|
typedef struct _message {
|
|
unsigned int id;
|
|
char *str;
|
|
} MESSAGE;
|
|
|
|
MESSAGE __MSGTAB[] = {
|
|
{1001, "%s : option name ambiguous"}, // "%s : option name ambiguous"
|
|
{1003, "/Q and /EXEPACK incompatible"}, // "/Q and /EXEPACK incompatible"
|
|
{1004, "%s : invalid numeric value"}, // "%s : invalid numeric value"
|
|
{1005, "%s : packing limit exceeds 64K"}, // "%s : packing limit exceeds 64K"
|
|
{1006, "%s : stack size exceeds 64K-2"}, // "%s : stack size exceeds 64K-2"
|
|
{1007, "%s : interrupt number exceeds 255"}, // "%s : interrupt number exceeds 255"
|
|
{1008, "%s : segment limit set too high"}, // "%s : segment limit set too high"
|
|
{1009, "%s : /CPARM : illegal value"}, // "%s : /CPARM : illegal value"
|
|
{1020, "no object files specified"}, // "no object files specified"
|
|
{1021, "cannot nest response files"}, // "cannot nest response files"
|
|
{1022, "response line too long"}, // "response line too long"
|
|
{1023, "terminated by user"}, // "terminated by user"
|
|
{1024, "nested right parentheses"}, // "nested right parentheses"
|
|
{1025, "nested left parentheses"}, // "nested left parentheses"
|
|
{1026, "unmatched right parenthesis"}, // "unmatched right parenthesis"
|
|
{1027, "unmatched left parenthesis"}, // "unmatched left parenthesis"
|
|
{1030, "missing internal name"}, // "missing internal name"
|
|
{1031, "module description redefined"}, // "module description redefined"
|
|
{1032, "module name redefined"}, // "module name redefined"
|
|
{1033, "input line too long; %d characters allowed"}, // "input line too long; %d characters allowed"
|
|
{1034, "name truncated to '%s'"}, // "name truncated to '%s'"
|
|
{1035, "%s in module-definition file"}, // "%s in module-definition file"
|
|
{1040, "too many exported entries"}, // "too many exported entries"
|
|
{1041, "resident names table overflow"}, // "resident names table overflow"
|
|
{1042, "nonresident names table overflow"}, // "nonresident names table overflow"
|
|
{1043, "relocation table overflow"}, // "relocation table overflow"
|
|
{1044, "imported names table overflow"}, // "imported names table overflow"
|
|
{1045, "too many TYPDEF records"}, // "too many TYPDEF records"
|
|
{1046, "too many external symbols in one module"}, // "too many external symbols in one module"
|
|
{1047, "too many group, segment, and class names in one module"}, // "too many group, segment, and class names in one module"
|
|
{1048, "too many segments in one module"}, // "too many segments in one module"
|
|
{1049, "too many segments"}, // "too many segments"
|
|
{1050, "too many groups in one module"}, // "too many groups in one module"
|
|
{1051, "too many groups"}, // "too many groups"
|
|
{1052, "too many libraries"}, // "too many libraries"
|
|
{1053, "out of memory for symbol table"}, // "out of memory for symbol table"
|
|
{1054, "requested segment limit too high"}, // "requested segment limit too high"
|
|
{1056, "too many overlays"}, // "too many overlays"
|
|
{1057, "data record too large"}, // "data record too large"
|
|
{1063, "out of memory for debugging information"}, // "out of memory for debugging information"
|
|
{1064, "out of memory"}, // "out of memory"
|
|
{1065, "too many interoverlay calls\r\nuse /DYNAMIC:<nnn>; current limit is %d"}, // "too many interoverlay calls\r\nuse /DYNAMIC:<nnn>; current limit is %d"
|
|
{1066, "size of %d overlay exceeds 64K"}, // "size of %d overlay exceeds 64K"
|
|
{1067, "system memory allocation error; reboot and relink"}, // "system memory allocation error; reboot and relink"
|
|
{1070, "%s : segment size exceeds 64K"}, // "%s : segment size exceeds 64K"
|
|
{1071, "segment _TEXT exceeds 64K-16"}, // "segment _TEXT exceeds 64K-16"
|
|
{1072, "common area longer than 65536 bytes"}, // "common area longer than 65536 bytes"
|
|
{1073, "file-segment limit exceeded"}, // "file-segment limit exceeded"
|
|
{1074, "%s : group larger than 64K bytes"}, // "%s : group larger than 64K bytes"
|
|
{1075, "entry table exceeds 64K-1"}, // "entry table exceeds 64K-1"
|
|
{1076, "%s : segment size exceeds %dMB"}, // "%s : segment size exceeds %dMB"
|
|
{1077, "common area longer than 4GB-1"}, // "common area longer than 4GB-1"
|
|
{1078, "file-segment alignment too small"}, // "file-segment alignment too small"
|
|
{1080, "cannot open list file"}, // "cannot open list file"
|
|
{1081, "cannot write to the executable file - %s"}, // "cannot write to the executable file - %s"
|
|
{1082, "%s : stub file not found"}, // "%s : stub file not found"
|
|
{1083, "%s : cannot open run file - %s"}, // "%s : cannot open run file - %s"
|
|
{1084, "cannot create temporary file"}, // "cannot create temporary file"
|
|
{1085, "cannot open temporary file - %s"}, // "cannot open temporary file - %s"
|
|
{1086, "temporary file missing"}, // "temporary file missing"
|
|
{1087, "unexpected end-of-file on temporary file"}, // "unexpected end-of-file on temporary file"
|
|
{1088, "out of space for list file"}, // "out of space for list file"
|
|
{1089, "%s : cannot open response file"}, // "%s : cannot open response file"
|
|
{1090, "cannot reopen list file"}, // "cannot reopen list file"
|
|
{1091, "unexpected end-of-file on library"}, // "unexpected end-of-file on library"
|
|
{1092, "cannot open module-definition file - %s"}, // "cannot open module-definition file - %s"
|
|
{1093, "%s : object file not found"}, // "%s : object file not found"
|
|
{1094, "%s : cannot open file for writing"}, // "%s : cannot open file for writing"
|
|
{1095, "%s : out of space for file"}, // "%s : out of space for file"
|
|
{1096, "unexpected end-of-file in response file"}, // "unexpected end-of-file in response file"
|
|
{1097, "I/O error - %s"}, // "I/O error - %s"
|
|
{1098, "cannot open include file '%s' - %s"}, // "cannot open include file '%s' - %s"
|
|
{1100, "stub .EXE file invalid"}, // "stub .EXE file invalid"
|
|
{1101, "invalid object module"}, // "invalid object module"
|
|
{1102, "unexpected end-of-file"}, // "unexpected end-of-file"
|
|
{1103, "%s : attempt to access data outside segment bounds"}, // "%s : attempt to access data outside segment bounds"
|
|
{1104, "%s : not valid library"}, // "%s : not valid library"
|
|
{1105, "invalid object due to interrupted incremental compile"}, // "invalid object due to interrupted incremental compile"
|
|
{1106, "unknown COMDAT allocation type for %s; record ignored"}, // "unknown COMDAT allocation type for %s; record ignored"
|
|
{1107, "unknown COMDAT selection type for %s; record ignored"}, // "unknown COMDAT selection type for %s; record ignored"
|
|
{1108, "invalid format of debugging information"}, // "invalid format of debugging information"
|
|
{1109, "%s : library path too long"}, // "%s : library path too long"
|
|
{1113, "unresolved COMDEF; internal error"}, // "unresolved COMDEF; internal error"
|
|
{1114, "unresolved COMDAT %s; internal error"}, // "unresolved COMDAT %s; internal error"
|
|
{1115, "%s: option incompatible with overlays"}, // "%s: option incompatible with overlays"
|
|
{1117, "unallocated COMDAT %s; internal error"}, // "unallocated COMDAT %s; internal error"
|
|
{1123, "%s : segment defined both 16- and 32-bit"}, // "%s : segment defined both 16- and 32-bit"
|
|
{1126, "conflicting pwords value"}, // "conflicting pwords value"
|
|
{1127, "far segment references not allowed with /TINY"}, // "far segment references not allowed with /TINY"
|
|
{1128, "too many nested include files in module-definition file"}, // "too many nested include files in module-definition file"
|
|
{1129, "missing or invalid include file name"}, // "missing or invalid include file name"
|
|
{2000, "imported starting address"}, // "imported starting address"
|
|
{2002, "fixup overflow at %lX in segment %s"}, // "fixup overflow at %lX in segment %s"
|
|
{2003, "near reference to far target at %lX in segment %s"}, // "near reference to far target at %lX in segment %s"
|
|
{2005, "fixup type unsupported at %lX in segment %s"}, // "fixup type unsupported at %lX in segment %s"
|
|
{2010, "too many fixups in LIDATA record"}, // "too many fixups in LIDATA record"
|
|
{2011, "%s : NEAR/HUGE conflict"}, // "%s : NEAR/HUGE conflict"
|
|
{2012, "%s : array-element size mismatch"}, // "%s : array-element size mismatch"
|
|
{2013, "LIDATA record too large"}, // "LIDATA record too large"
|
|
{2022, "%s%s: export undefined"}, // "%s%s: export undefined"
|
|
{2023, "%s (alias %s) : export imported"}, // "%s (alias %s) : export imported"
|
|
{2024, "%s : special symbol already defined"}, // "%s : special symbol already defined"
|
|
{2025, "%s : symbol defined more than once"}, // "%s : symbol defined more than once"
|
|
{2026, "entry ordinal %u, name %s : multiple definitions for same ordinal"}, // "entry ordinal %u, name %s : multiple definitions for same ordinal"
|
|
{2027, "%s : ordinal too large for export"}, // "%s : ordinal too large for export"
|
|
{2028, "automatic data segment plus heap exceed 64K"}, // "automatic data segment plus heap exceed 64K"
|
|
{2029, "'%s' : unresolved external\r\n"}, // "'%s' : unresolved external\r\n"
|
|
{2030, "starting address not code (use class 'CODE')"}, // "starting address not code (use class 'CODE')"
|
|
{2041, "stack plus data exceed 64K"}, // "stack plus data exceed 64K"
|
|
{2043, "Quick library support module missing"}, // "Quick library support module missing"
|
|
{2044, "%s : symbol multiply defined, use /NOE"}, // "%s : symbol multiply defined, use /NOE"
|
|
{2045, "%s : segment with > 1 class name not allowed with /INCR"}, // "%s : segment with > 1 class name not allowed with /INCR"
|
|
{2046, "share attribute conflict - segment %s in group %s"}, // "share attribute conflict - segment %s in group %s"
|
|
{2047, "IOPL attribute conflict - segment %s in group %s"}, // "IOPL attribute conflict - segment %s in group %s"
|
|
{2048, "Microsoft Overlay Manager module not found"}, // "Microsoft Overlay Manager module not found"
|
|
{2049, "Microsoft DOS Extender module not found"}, // "Microsoft DOS Extender module not found"
|
|
{2050, "USE16/USE32 attribute conflict - segment %s in group %s"}, // "USE16/USE32 attribute conflict - segment %s in group %s"
|
|
{2052, "'%s' : unresolved external - possible calling convention mismatch\r\n"}, // "'%s' : unresolved external - possible calling convention mismatch\r\n"
|
|
{2057, "duplicate of %s with different size found; record ignored"}, // "duplicate of %s with different size found; record ignored"
|
|
{2058, "different duplicate of %s found; record ignored"}, // "different duplicate of %s found; record ignored"
|
|
{2059, "size of data block associated with %s exceeds 4GB"}, // "size of data block associated with %s exceeds 4GB"
|
|
{2060, "size of data block associated with %s (16-bit segment) exceeds 64K"}, // "size of data block associated with %s (16-bit segment) exceeds 64K"
|
|
{2061, "no space for data block associated with %s inside %s segment"}, // "no space for data block associated with %s inside %s segment"
|
|
{2062, "continuation of COMDAT %s has conflicting attributes; record ignored"}, // "continuation of COMDAT %s has conflicting attributes; record ignored"
|
|
{2063, "%s allocated in undefined segment"}, // "%s allocated in undefined segment"
|
|
{2064, "starting address not in the root overlay"}, // "starting address not in the root overlay"
|
|
{2066, "static initialization of overlaid data not allowed"}, // "static initialization of overlaid data not allowed"
|
|
{4000, "segment displacement included near %04lX in segment %s"}, // "segment displacement included near %04lX in segment %s"
|
|
{4001, "frame-relative fixup, frame ignored near %04lX in segment %s"}, // "frame-relative fixup, frame ignored near %04lX in segment %s"
|
|
{4002, "frame-relative absolute fixup near %04lX in segment %s"}, // "frame-relative absolute fixup near %04lX in segment %s"
|
|
{4003, "intersegment self-relative fixup at %04lX in segment %s"}, // "intersegment self-relative fixup at %04lX in segment %s"
|
|
{4004, "possible fixup overflow at %lX in segment %s"}, // "possible fixup overflow at %lX in segment %s"
|
|
{4010, "invalid alignment specification"}, // "invalid alignment specification"
|
|
{4011, "/PACKC value exceeding 64K-36 unreliable"}, // "/PACKC value exceeding 64K-36 unreliable"
|
|
{4012, "/HIGH disables /EXEPACK"}, // "/HIGH disables /EXEPACK"
|
|
{4013, "%s : option ignored for segmented-executable file"}, // "%s : option ignored for segmented-executable file"
|
|
{4014, "%s : option ignored for MS-DOS executable file"}, // "%s : option ignored for MS-DOS executable file"
|
|
{4015, "/CO disables /DSALLOC"}, // "/CO disables /DSALLOC"
|
|
{4016, "/CO disables /EXEPACK"}, // "/CO disables /EXEPACK"
|
|
{4017, "/%s : unrecognized option name; option ignored"}, // "/%s : unrecognized option name; option ignored"
|
|
{4018, "missing or unrecognized application type; option %s ignored"}, // "missing or unrecognized application type; option %s ignored"
|
|
{4019, "/TINY disables /INCR"}, // "/TINY disables /INCR"
|
|
{4087, "/DYNAMIC disables /EXEPACK"}, // "/DYNAMIC disables /EXEPACK"
|
|
{4020, "%s : code-segment size exceeds 64K-36"}, // "%s : code-segment size exceeds 64K-36"
|
|
{4021, "no stack segment"}, // "no stack segment"
|
|
{4022, "%s, %s : groups overlap"}, // "%s, %s : groups overlap"
|
|
{4023, "%s(%s) : export internal name conflict"}, // "%s(%s) : export internal name conflict"
|
|
{4024, "%s : multiple definitions for export name"}, // "%s : multiple definitions for export name"
|
|
{4025, "%s.%s(%s) : import internal name conflict"}, // "%s.%s(%s) : import internal name conflict"
|
|
{4026, "%s.%s(%s) : self-imported"}, // "%s.%s(%s) : self-imported"
|
|
{4027, "%s : multiple definitions for import internal name"}, // "%s : multiple definitions for import internal name"
|
|
{4028, "%s : segment already defined"}, // "%s : segment already defined"
|
|
{4029, "%s : DGROUP segment converted to type data"}, // "%s : DGROUP segment converted to type data"
|
|
{4030, "%s : segment attributes changed to conform with\r\n automatic data segment"}, // "%s : segment attributes changed to conform with\r\n automatic data segment"
|
|
{4031, "%s : segment declared in more than one group"}, // "%s : segment declared in more than one group"
|
|
{4032, "%s : code-group size exceeds 64K-36"}, // "%s : code-group size exceeds 64K-36"
|
|
{4033, "first segment in mixed group %s is a USE32 segment"}, // "first segment in mixed group %s is a USE32 segment"
|
|
{4034, "more than %d overlay segments; extra put in root"}, // "more than %d overlay segments; extra put in root"
|
|
{4036, "no automatic data segment"}, // "no automatic data segment"
|
|
{4038, "program has no starting address"}, // "program has no starting address"
|
|
{4040, "stack size ignored for /TINY"}, // "stack size ignored for /TINY"
|
|
{4050, "file not suitable for /EXEPACK; relink without"}, // "file not suitable for /EXEPACK; relink without"
|
|
{4055, "start address not equal to 0x100 for /TINY"}, // "start address not equal to 0x100 for /TINY"
|
|
{4056, "/EXEPACK valid only for real-mode MS-DOS programs; ignored"}, // "/EXEPACK valid only for real-mode MS-DOS programs; ignored"
|
|
{4057, "stack specified for DLL; ignored"}, // "stack specified for DLL; ignored"
|
|
{4058, "ignoring alias for already defined symbol '%s'"}, // "ignoring alias for already defined symbol '%s'"
|
|
{4059, "far reference to overlaid segment %s changed to %s"}, // "far reference to overlaid segment %s changed to %s"
|
|
{4089, "both /STACK and STACKSIZE used; assuming %d"}, // "both /STACK and STACKSIZE used; assuming %d"
|
|
{4042, "cannot open old version"}, // "cannot open old version"
|
|
{4043, "old version not segmented executable format"}, // "old version not segmented executable format"
|
|
{4045, "name of output file is '%s'"}, // "name of output file is '%s'"
|
|
{4051, "%s : cannot find library"}, // "%s : cannot find library"
|
|
{4053, "VM.TMP : illegal file name; ignored"}, // "VM.TMP : illegal file name; ignored"
|
|
{4054, "%s : cannot find file"}, // "%s : cannot find file"
|
|
{4067, "changing default resolution for weak external '%s'\r\n from '%s' to '%s'"}, // "changing default resolution for weak external '%s'\r\n from '%s' to '%s'"
|
|
{4068, "ignoring stack size greater than 64K"}, // "ignoring stack size greater than 64K"
|
|
{4069, "filename truncated to '%s'"}, // "filename truncated to '%s'"
|
|
{4070, "too many public symbols for sorting"}, // "too many public symbols for sorting"
|
|
{4075, "object type conflict - assuming '%s'"}, // "object type conflict - assuming '%s'"
|
|
{4076, "no segments defined"}, // "no segments defined"
|
|
{4077, "symbol '%s' not defined; ordered allocation ignored"}, // "symbol '%s' not defined; ordered allocation ignored"
|
|
{4079, "symbol '%s' already defined for ordered allocation; duplicate ignored"}, // "symbol '%s' already defined for ordered allocation; duplicate ignored"
|
|
{4080, "changing substitute name for alias '%s'\r\n from '%s' to '%s'"}, // "changing substitute name for alias '%s'\r\n from '%s' to '%s'"
|
|
{4081, "cannot execute '%s %s' - %s\r\n"}, // "cannot execute '%s %s' - %s\r\n"
|
|
{4082, "changing overlay assigment for segment '%s' from %d to %d"}, // "changing overlay assigment for segment '%s' from %d to %d"
|
|
{4083, "changing overlay assigment for symbol '%s' from %d to %d"}, // "changing overlay assigment for symbol '%s' from %d to %d"
|
|
{4084, "%s : argument missing; option ignored"}, // "%s : argument missing; option ignored"
|
|
{4085, "%s : argument invalid; assuming %s"}, // "%s : argument invalid; assuming %s"
|
|
{4088, "file not suitable for /FARCALL; relink without"}, // "file not suitable for /FARCALL; relink without"
|
|
{99, "substitute symbol '%s' not found\r\n"}, // "substitute symbol '%s' not found\r\n"
|
|
{102, "Enter new file spec: "}, // "Enter new file spec: "
|
|
{103, "Change diskette in drive %c and press <ENTER>"}, // "Change diskette in drive %c and press <ENTER>"
|
|
{104, "Temporary file %s has been created."}, // "Temporary file %s has been created."
|
|
{105, "Do not change disk in drive %c:."}, // "Do not change disk in drive %c:."
|
|
{106, "Please replace original diskette in drive %c and press <ENTER>\r\n"}, // "Please replace original diskette in drive %c and press <ENTER>\r\n"
|
|
{107, "About to generate .EXE file"}, // "About to generate .EXE file"
|
|
{108, "This program cannot be run in DOS mode.\r\n$"}, // "This program cannot be run in DOS mode.\r\n$"
|
|
{109, "Valid options are:"}, // "Valid options are:"
|
|
{110, "Object Modules"}, // "Object Modules"
|
|
{111, "Run File"}, // "Run File"
|
|
{111, "Run File"}, // "Run File"
|
|
{112, "List File"}, // "List File"
|
|
{113, "Libraries"}, // "Libraries"
|
|
{114, "Definitions File"}, // "Definitions File"
|
|
{115, "\r\nThere was 1 error detected\r\n"}, // "\r\nThere was 1 error detected\r\n"
|
|
{116, "\r\nThere were %d errors detected\r\n"}, // "\r\nThere were %d errors detected\r\n"
|
|
{117, "\r\n Origin Group\r\n"}, // "\r\n Origin Group\r\n"
|
|
{118, "\r\n Address"}, // "\r\n Address"
|
|
{119, "Export"}, // "Export"
|
|
{120, "Alias\r\n\r\n"}, // "Alias\r\n\r\n"
|
|
{121, "\r\n Address"}, // "\r\n Address"
|
|
{122, "Publics by Name\r\n\r\n"}, // "Publics by Name\r\n\r\n"
|
|
{123, "Locals by Name\r\n\r\n"}, // "Locals by Name\r\n\r\n"
|
|
{124, "Publics by Value\r\n\r\n"}, // "Publics by Value\r\n\r\n"
|
|
{125, "Locals by Value\r\n\r\n"}, // "Locals by Value\r\n\r\n"
|
|
{126, "\r\n Start"}, // "\r\n Start"
|
|
{127, "Length"}, // "Length"
|
|
{128, "Name"}, // "Name"
|
|
{129, "Class\r\n"}, // "Class\r\n"
|
|
{130, "\r\n Start Stop Length Name"}, // "\r\n Start Stop Length Name"
|
|
{131, " Resident\r\n"}, // " Resident\r\n"
|
|
{132, " Overlay %XH\r\n"}, // " Overlay %XH\r\n"
|
|
{133, "\r\nProgram entry point at %04X:%04X\r\n"}, // "\r\nProgram entry point at %04X:%04X\r\n"
|
|
{ 134, " Temporary file %s has been created.\r\nDo not change disk in drive %c:."}, // " Temporary file %s has been created.\r\nDo not change disk in drive %c:."
|
|
{135, "Usage:\r\n\r\n"}, // "Usage:\r\n\r\n"
|
|
{136, "LINK\r\nLINK @<response file>\r\n"}, // "LINK\r\nLINK @<response file>\r\n"
|
|
{137, "LINK <objs>,<exefile>,<mapfile>,<libs>,<deffile>\r\n\r\n"}, // "LINK <objs>,<exefile>,<mapfile>,<libs>,<deffile>\r\n\r\n"
|
|
{139, "This program requires Microsoft Windows.\r\n$"}, // "This program requires Microsoft Windows.\r\n$"
|
|
{140, "**** PARSING DEFINITIONS FILE ****\r\n"}, // "**** PARSING DEFINITIONS FILE ****\r\n"
|
|
{141, "**** PASS ONE ****\r\n"}, // "**** PASS ONE ****\r\n"
|
|
{142, "**** SEARCHING LIBRARIES ****\r\n"}, // "**** SEARCHING LIBRARIES ****\r\n"
|
|
{143, "**** ASSIGNING ADDRESSES ****\r\n"}, // "**** ASSIGNING ADDRESSES ****\r\n"
|
|
{144, "**** PRINTING MAP FILE ****\r\n"}, // "**** PRINTING MAP FILE ****\r\n"
|
|
{145, "**** PASS TWO ****\r\n"}, // "**** PASS TWO ****\r\n"
|
|
{146, "**** WRITING\x20"}, // "**** WRITING\x20"
|
|
{147, " - overlaid"}, // " - overlaid"
|
|
{148, " EXECUTABLE ****\r\n"}, // " EXECUTABLE ****\r\n"
|
|
{149, "**** NUMBER OF INTEROVERLAY CALLS: requested %d; generated %d ****\r\n"}, // "**** NUMBER OF INTEROVERLAY CALLS: requested %d; generated %d ****\r\n"
|
|
{150, "**** ERRORS OCCURED - NO EXECUTABLE PRODUCED ****\r\n"}, // "**** ERRORS OCCURED - NO EXECUTABLE PRODUCED ****\r\n"
|
|
{151, "Parsing Definition File"}, // "Parsing Definition File"
|
|
{152, "Pass1:\x20"}, // "Pass1:\x20"
|
|
{153, "Library Search:"}, // "Library Search:"
|
|
{154, "Pass2:\x20"}, // "Pass2:\x20"
|
|
{155, "Writing Map File"}, // "Writing Map File"
|
|
{156, "Writing Executable"}, // "Writing Executable"
|
|
{157, "Assigning Addresses"}, // "Assigning Addresses"
|
|
{300, "target external"}, // "target external"
|
|
{301, "frame segment"}, // "frame segment"
|
|
{302, "target segment"}, // "target segment"
|
|
{303, "target offset"}, // "target offset"
|
|
{304, "warning"}, // "warning"
|
|
{305, "error"}, // "error"
|
|
{306, "fatal error"}, // "fatal error"
|
|
{307, "Object file offset"}, // "Object file offset"
|
|
{308, "Record type"}, // "Record type"
|
|
{309, "in file(s)"}, // "in file(s)"
|
|
{310, "Version"}, // "Version"
|
|
{311, "All rights reserved"}, // "All rights reserved"
|
|
{312, "\r\nSegments %u\r\n"}, // "\r\nSegments %u\r\n"
|
|
{313, "Groups %u\r\n"}, // "Groups %u\r\n"
|
|
{314, "Bytes in symbol table %ld\r\n"}, // "Bytes in symbol table %ld\r\n"
|
|
{315, "Overlays %u\r\n"}, // "Overlays %u\r\n"
|
|
{0, NULL}
|
|
};
|
|
|
|
char * __NMSG_TEXT(
|
|
unsigned msgId
|
|
) {
|
|
MESSAGE *pMsg = __MSGTAB;
|
|
|
|
for (;pMsg->id; pMsg++) {
|
|
if (pMsg->id == msgId)
|
|
break;
|
|
}
|
|
return pMsg->str;
|
|
}
|