cpm commands
This commit is contained in:
parent
c5cbf0fc37
commit
e29685df4e
|
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
erlaubte Kommandos:
|
||||||
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
copyin name1 name2 - Kopiere Unix-Text-File `name1' ins CP/M-File `name2'
|
||||||
|
copyout name1 name2 - Kopiere CP/M-Text-File `name1' ins Unix-File `name2'
|
||||||
|
ccopyin name1 name2 - Kopiere Unix-Code-File `name1' ins CP/M-File `name2'
|
||||||
|
ccopyout name1 name2- Kopiere CP/M-Code-File `name1' ins Unix-File `name2'
|
||||||
|
dir[ectory] - Anzeige CP/M-Directory
|
||||||
|
ls - " " "
|
||||||
|
del[ete] name - Loesche CP/M-File `name'
|
||||||
|
era[se] name - " " " "
|
||||||
|
exi[t] - quit
|
||||||
|
log[out] - quit
|
||||||
|
typ[e] name - Anzeige CP/M-File `name' am Terminal
|
||||||
|
dum[p] name - Dump des CP/M-File am Terminal in ascii und hexadezimal
|
||||||
|
ren[ame] alt neu - Umbenennen des CP/M-File 'alt' in 'neu'
|
||||||
|
! kommando - Ausfuehren `kommando' im UNIX
|
||||||
|
disk - Anzeigen eingestelltes Diskettenformat
|
||||||
|
|
||||||
|
Wildcardzeichen sind nicht erlaubt
|
||||||
|
|
@ -0,0 +1,121 @@
|
||||||
|
/* interact.c 1.8 83/07/27 */
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "command.h"
|
||||||
|
#ifdef p8000
|
||||||
|
#include <setret.h>
|
||||||
|
#else
|
||||||
|
#include <setjmp.h>
|
||||||
|
#endif
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
|
#define errinp { printf("??\n"); break; }
|
||||||
|
|
||||||
|
#ifdef p8000
|
||||||
|
ret_buf
|
||||||
|
#else
|
||||||
|
jmp_buf
|
||||||
|
#endif
|
||||||
|
env;
|
||||||
|
|
||||||
|
#ifndef p8000
|
||||||
|
#define setret setjmp
|
||||||
|
#define retjmp longjmp
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int firsttime = 0;
|
||||||
|
|
||||||
|
interact()
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
int i, intrpt();
|
||||||
|
char cmd[80], *rest, *index();
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
if (firsttime++ == 0) {
|
||||||
|
signal(SIGINT, intrpt, -1);
|
||||||
|
setret(env);
|
||||||
|
}
|
||||||
|
if (cmdinp(cmd) < 0)
|
||||||
|
return (0);
|
||||||
|
rest = index(cmd, ' ');
|
||||||
|
if (rest)
|
||||||
|
*rest++ = '\0';
|
||||||
|
i = chkcmd(cmd);
|
||||||
|
#ifdef DEBUG
|
||||||
|
printf("command: %s, ind: %d\n", cmd, i);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
switch (i) {
|
||||||
|
default:
|
||||||
|
errinp;
|
||||||
|
break;
|
||||||
|
case CMD_DIR:
|
||||||
|
case CMD_LS:
|
||||||
|
dispdir();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMD_RENAME:
|
||||||
|
rename(rest);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMD_OCOPY:
|
||||||
|
copyc(rest, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMD_ICOPY:
|
||||||
|
pip(rest, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMD_DELETE:
|
||||||
|
case CMD_ERASE:
|
||||||
|
delete(rest);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMD_EXIT:
|
||||||
|
case CMD_LOGOUT:
|
||||||
|
return(0);
|
||||||
|
|
||||||
|
case CMD_TYPE:
|
||||||
|
copy(rest, stdout, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMD_HELP:
|
||||||
|
help();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMD_OCCOPY:
|
||||||
|
copyc(rest, 1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMD_ICCOPY:
|
||||||
|
pip(rest,1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMD_DUMP:
|
||||||
|
dump(rest);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMD_UNIX:
|
||||||
|
system(rest);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMD_DISK:
|
||||||
|
disk();
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* handle interrupts (in interactive mode only),
|
||||||
|
* just (long)jump back to command input mode
|
||||||
|
*/
|
||||||
|
|
||||||
|
intrpt()
|
||||||
|
{
|
||||||
|
firsttime = 0;
|
||||||
|
printf("\n");
|
||||||
|
longret(env, 0);
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue