1
0
mirror of https://github.com/aap/pdp6.git synced 2026-05-03 06:38:45 +00:00

KA compatibility

This commit is contained in:
aap
2019-11-04 09:33:03 +01:00
parent 77c02726f5
commit 9d08e7306e
23 changed files with 1340 additions and 203 deletions

View File

@@ -1,4 +1,4 @@
#include "fe6.h"
#include "fe.h"
#include <unistd.h>
#include <fcntl.h>
@@ -60,6 +60,33 @@ splitops(void)
}
}
void
loadsav(FILE *fp)
{
word iowd;
word w;
while(w = readwbak(fp), w != ~0){
if(w >> 27 == 0254){
printf("PC: %o\r\n", right(w));
fflush(stdout);
cpu_setpc(right(w));
started = 1;
return;
}
iowd = w;
while(left(iowd) != 0){
iowd += 01000001;
w = readwbak(fp);
if(w == ~0)
goto format;
deposit(right(iowd), w);
}
}
format:
printf("\r\nSAV format botch\r\n");
fflush(stdout);
}
void
loadsblk(FILE *fp)
{
@@ -209,6 +236,19 @@ c_load(int argc, char *argv[])
fclose(f);
}
void
c_loadsav(int argc, char *argv[])
{
FILE *f;
if(argc < 2)
return;
f = fopen(ops[1], "rb");
if(f == nil)
err("?F? ");
loadsav(f);
fclose(f);
}
struct dev devtab[] = {
{ "ptr", O_RDONLY, -1, nil },
{ "ptp", O_WRONLY | O_CREAT | O_TRUNC, -1, nil },
@@ -285,6 +325,7 @@ struct {
void (*f)(int, char **);
} cmdtab[] = {
{ "load", c_load },
{ "loadsav", c_loadsav },
{ "dump", c_dump },
{ "mount", c_mount },
{ "unmount", c_unmount },