Line 31... |
Line 31... |
RAM_SIZE_MAX / M);
|
RAM_SIZE_MAX / M);
|
fprintf(stderr, " [-l <prog>] set program file name\n");
|
fprintf(stderr, " [-l <prog>] set program file name\n");
|
fprintf(stderr, " [-a <addr>] set program load address\n");
|
fprintf(stderr, " [-a <addr>] set program load address\n");
|
fprintf(stderr, " [-r <rom>] set ROM image file name\n");
|
fprintf(stderr, " [-r <rom>] set ROM image file name\n");
|
fprintf(stderr, " [-d <disk>] set disk image file name\n");
|
fprintf(stderr, " [-d <disk>] set disk image file name\n");
|
fprintf(stderr, " [-t <n>] connect n terminals (0-%d)\n",
|
fprintf(stderr, " [-s <n>] install n serial lines (0-%d)\n",
|
MAX_NTERMS);
|
MAX_NTERMS);
|
fprintf(stderr, " [-n <k>] no terminal on line k (0-%d)\n",
|
fprintf(stderr, " [-t <k>] connect terminal to line k (0-%d)\n",
|
MAX_NTERMS - 1);
|
MAX_NTERMS - 1);
|
fprintf(stderr, " [-g] install graphics controller\n");
|
fprintf(stderr, " [-g] install graphics controller\n");
|
fprintf(stderr, " [-c] install console\n");
|
fprintf(stderr, " [-c] install console\n");
|
fprintf(stderr, " [-o <file>] bind output device to file\n");
|
fprintf(stderr, " [-o <file>] bind output device to file\n");
|
fprintf(stderr, "The options -l and -r are mutually exclusive.\n");
|
fprintf(stderr, "The options -l and -r are mutually exclusive.\n");
|
fprintf(stderr, "If both are omitted, interactive mode is assumed.\n");
|
fprintf(stderr, "If both are omitted, interactive mode is assumed.\n");
|
fprintf(stderr, "The option -n leaves the specified serial line ");
|
fprintf(stderr, "Unconnected serial lines can be accessed by opening\n");
|
fprintf(stderr, "unconnected.\nIt can be accessed from within another ");
|
fprintf(stderr, "their corresponding pseudo terminal (path is shown).\n");
|
fprintf(stderr, "process by opening\nthe corresponding pseudo terminal ");
|
|
fprintf(stderr, "(path will be shown here).\n");
|
|
exit(1);
|
exit(1);
|
}
|
}
|
|
|
|
|
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
Line 75... |
Line 73... |
loadAddr = 0;
|
loadAddr = 0;
|
romName = NULL;
|
romName = NULL;
|
diskName = NULL;
|
diskName = NULL;
|
numTerms = 0;
|
numTerms = 0;
|
for (j = 0; j < MAX_NTERMS; j++) {
|
for (j = 0; j < MAX_NTERMS; j++) {
|
hasTerm[j] = true;
|
hasTerm[j] = false;
|
}
|
}
|
graphics = false;
|
graphics = false;
|
console = false;
|
console = false;
|
outputName = NULL;
|
outputName = NULL;
|
for (i = 1; i < argc; i++) {
|
for (i = 1; i < argc; i++) {
|
Line 128... |
Line 126... |
if (i == argc - 1 || diskName != NULL) {
|
if (i == argc - 1 || diskName != NULL) {
|
usage(argv[0]);
|
usage(argv[0]);
|
}
|
}
|
diskName = argv[++i];
|
diskName = argv[++i];
|
break;
|
break;
|
case 't':
|
case 's':
|
if (i == argc - 1) {
|
if (i == argc - 1) {
|
usage(argv[0]);
|
usage(argv[0]);
|
}
|
}
|
numTerms = strtol(argv[++i], &endp, 10);
|
numTerms = strtol(argv[++i], &endp, 10);
|
if (*endp != '\0' ||
|
if (*endp != '\0' ||
|
numTerms < 0 ||
|
numTerms < 0 ||
|
numTerms > MAX_NTERMS) {
|
numTerms > MAX_NTERMS) {
|
usage(argv[0]);
|
usage(argv[0]);
|
}
|
}
|
break;
|
break;
|
case 'n':
|
case 't':
|
if (i == argc - 1) {
|
if (i == argc - 1) {
|
usage(argv[0]);
|
usage(argv[0]);
|
}
|
}
|
j = strtol(argv[++i], &endp, 10);
|
j = strtol(argv[++i], &endp, 10);
|
if (*endp != '\0' ||
|
if (*endp != '\0' ||
|
j < 0 ||
|
j < 0 ||
|
j > MAX_NTERMS - 1) {
|
j > MAX_NTERMS - 1) {
|
usage(argv[0]);
|
usage(argv[0]);
|
}
|
}
|
hasTerm[j] = false;
|
hasTerm[j] = true;
|
break;
|
break;
|
case 'g':
|
case 'g':
|
graphics = true;
|
graphics = true;
|
break;
|
break;
|
case 'c':
|
case 'c':
|