vtserver mod to accommodate 11/34 console emulator

Jacob Ritorto jacob.ritorto at gmail.com
Sat Jan 31 22:29:11 CST 2015


Hi,
  Pardon the crudeness of this approach, but the last time I did a project
like this, I never managed to communicate it to others who might've used
it.

  I modified Warren's VTserver to work with older pdp11s, like my 11/34,
that have the older console emulator that speaks differently.

  Warren's original expects a nice new ODT that responds to things like
165200/000004
for depositing values in memory.

I modified it to talk to the 11/34-style console emulator that expect
something more like

L 165200
D 000004

So, my code currently works, but it's really crude with sleep(1) all over
the place to mitigate overrunning the console serial.  It should be merged
in properly to Warren's original and rewritten to have its own command line
argument other than -odt , but that said, here's the diff.  Use it if you
can.  I hope to get around to making it nicer someday.

156a157,159
> puts("SENDING BOOT CODE VIA CONSOLE EMULATOR");
>         write(portfd, "L 165000\r", strlen("L 165000\r"));
> sleep (1);
158c161
< sprintf(bootbuf, "%06o/", loc);
---
> sprintf(bootbuf, "L %06o\r", loc);
160c163
<
---
> sleep(1);
162,163c165,166
< while (1) { read(portfd, &ch, 1); if (ch==' ') break; }
< sprintf(bootbuf, "%06o\r", bootcode[i]);
---
> while (1) { read(portfd, &ch, 1); printf("%c",ch); if (ch=='@') break; }
> sprintf(bootbuf, "D %06o\r", bootcode[i]);
165c168
<
---
> sleep(1);
167c170
< while (1) { read(portfd, &ch, 1); if (ch=='@') break; }
---
> while (1) { read(portfd, &ch, 1); printf("%c",ch); if (ch=='@') break; }
169c172,174
<     sprintf(bootbuf, "%06oG", BOOTSTART);
---
> puts("SENDING CONSOLE EMULATOR START COMMAND");
> sleep(1);
>     sprintf(bootbuf, "L %06o\r", BOOTSTART);
171c176,179
<     while (1) { read(portfd, &ch, 1); if (ch=='G') break; }
---
> sleep(1);
>     sprintf(bootbuf, "S\r", BOOTSTART);
>     write(portfd, bootbuf, strlen(bootbuf));
>     while (1) { read(portfd, &ch, 1); if (ch=='@') break; }
490a499
>   printf("havesentbootcode %d\n",havesentbootcode);


More information about the cctech mailing list