mirror of
https://github.com/aap/pdp6.git
synced 2026-01-11 23:53:31 +00:00
Merge pull request #9 from aap/lars/tmxr
Update netmem for new protocol used by SIMH's TMXR.
This commit is contained in:
commit
ef0693e927
27
emu/netmem.c
27
emu/netmem.c
@ -25,11 +25,12 @@ netmemcycle(void *dev)
|
||||
if(!hasinput(nm->fd))
|
||||
return;
|
||||
|
||||
if(readn(nm->fd, &len, 1)){
|
||||
if(readn(nm->fd, buf, 2)){
|
||||
fprintf(stderr, "netmem fd closed\n");
|
||||
nm->fd = -1;
|
||||
return;
|
||||
}
|
||||
len = buf[0]<<8 | buf[1];
|
||||
if(len > 9){
|
||||
fprintf(stderr, "netmem botch, closing\n");
|
||||
close(nm->fd);
|
||||
@ -50,23 +51,25 @@ netmemcycle(void *dev)
|
||||
if(p == nil) goto err;
|
||||
*p = d;
|
||||
printf("write %06lo %012lo\n", a, d);
|
||||
buf[0] = 1;
|
||||
buf[1] = ACK;
|
||||
writen(nm->fd, buf, buf[0]+1);
|
||||
buf[0] = 0;
|
||||
buf[1] = 1;
|
||||
buf[2] = ACK;
|
||||
writen(nm->fd, buf, buf[1]+2);
|
||||
break;
|
||||
case RDRQ:
|
||||
p = getmemref(&nm->apr->membus, a, 0);
|
||||
if(p == nil) goto err;
|
||||
d = *p;
|
||||
printf("read %06lo %012lo\n", a, d);
|
||||
buf[0] = 6;
|
||||
buf[1] = ACK;
|
||||
buf[2] = d;
|
||||
buf[3] = d>>8;
|
||||
buf[4] = d>>16;
|
||||
buf[5] = d>>24;
|
||||
buf[6] = d>>32;
|
||||
writen(nm->fd, buf, buf[0]+1);
|
||||
buf[0] = 0;
|
||||
buf[1] = 6;
|
||||
buf[2] = ACK;
|
||||
buf[3] = d;
|
||||
buf[4] = d>>8;
|
||||
buf[5] = d>>16;
|
||||
buf[6] = d>>24;
|
||||
buf[7] = d>>32;
|
||||
writen(nm->fd, buf, buf[1]+2);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "unknown netmem message %d\n", buf[0]);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user