PDP-10 / its

Incompatible Timesharing System
Other
846 stars 80 forks source link

Knight TV emulator #279

Closed larsbrinkhoff closed 6 years ago

larsbrinkhoff commented 7 years ago

For many years, the primary way to access Al was from the Knight TV terminal system, which was designed by Tom Knight.

The Knight TVs are bit-mapped frame buffer displays controlled by a small PDP-11. The TV-11 is connected to the PDP-10 via a special PDP10-to-PDP11 interface which allows the PDP-11's memory to be mapped into the PDP-10. A Knight TV console consists of a CRT display, and a keyboard similar to those on the SAIL TV system used at Stanford. -- Getting Started

knight2

Knight TV Controllers at MIT AI Lab. https://www.computerhistory.org/collections/catalog/102803892 102803892-03-01-acc

aap commented 7 years ago

Is there any documentation for it? I'd love to try to get it working.

ams commented 7 years ago

Is "Knight TV" the same thing as what was used as the TV subsystem on the CADR?

larsbrinkhoff commented 7 years ago

I search for AI memos, but came up with nothing. I think you'd better ask TK himself.

I'll try to help out by reading the monitor sources.

larsbrinkhoff commented 7 years ago

@ams That sounds likely.

ams commented 7 years ago

If it is the same as the CADR TV system then there are schematics for the board, source code for the TV sub-system. The CADR TV subsystem is just a memory mapped display. Here is the code that is used in the MIT CADR simulator (https://svn.common-lisp.net/mit-cadr/trunk/emulator/usim/x11.c)

Schematics: http://bitsavers.informatik.uni-stuttgart.de/pdf/mit/cadr/LM-2/05_TV.pdf

TV subsystem bits: https://svn.common-lisp.net/mit-cadr/trunk/lisp/window/tvdefs.lisp

If it is something different .. then I have no idea. :-)

aap commented 7 years ago

The framebuffer would probably be the easiest part in this. There has to be a pdp-11 program to drive the terminals and talk to the 10. Then there is software on the 10 side as well. If he have all the code I'm sure the rest could be reconstructed even if there is no other documentation available. Of course having documentation would be of great help.

larsbrinkhoff commented 7 years ago

SYSDOC; .CALLS >

SYSDOC; UUOS >

larsbrinkhoff commented 7 years ago

It seems the Knight TV system was attached to the KA10 AI, so I suppose the TVs went away when the KA did. That would be 1983.

It could be that the monitor TV code is tangled with the AIKA code.

larsbrinkhoff commented 7 years ago

@aap SYSDOC; TV >

To appear soon.

larsbrinkhoff commented 7 years ago

I don't think I see anything resembling a PDP-11 program for controlling a Knight TV.

Strike that, it's probably SYSTEM; TV 132.

larsbrinkhoff commented 7 years ago

May also need to talk through the IO PDP-11. SYSTEM; IOELEV 432.

But really, it may be simpler to emulate the workings of the TV subsystem rather than to get the 11 code up and running.

aap commented 7 years ago

I'm just skyping with Richard Greenblatt and he also explained a bit how the Knight TV worked. The 10-to-11 channel seems to have been a pretty cool but complex thing. We'd definitely some more documentation I think.

larsbrinkhoff commented 7 years ago

@ams I did some reading, and now it seems the Lisp Machine TV system was quite distinct from the Knight TVs. I gather the LispM TV was driver by a controller board internal to the system. The Knight TVs were controlled by PDP-11s connected to the AI machine.

larsbrinkhoff commented 7 years ago

From SYSTEM; CONFIG >

; The following AI-KA stuff is broken since the 10-11 interface doesn't work,
; but is retained in case it gets fixed.
ams commented 7 years ago

@larsbrinkhoff Here is a small note from LMDOC;PROGR as it related to CONS. I'm guessing that the "1000 line TV" referes to the later TV on CADR which is 768x1024. Was the Knight TV's resolution 576x454? LMDOC;TVDOC might be of interest then.

The initial TV display system is presently hooked to the machine and works (although it currently must be driven from the PDP-11 console computer due to the lack of the above memory interface). This TV system is completely identical to the Knight TV's on the AI PDP-10 in its major performance parameters. Sometime in the first half of 1977 we hope to construct an improved TV display system (offering 1000 line TV resolution among many other features). This improved TV display system would employ the same video buffer memory boards as does the current one. These boards mount 16 pin 4K RAMs, and are directly adaptable to the new 16K RAMs which are just becomming available. However, the improved TV system is only a moderately high priority project since we can get along quite nicely with the current TV system for the time being.

larsbrinkhoff commented 7 years ago

Ok, then I suppose the CONS had the old Knight TV system, and the CADR had something new.

LMIO; TV 347 has these numbers:

;1037 lines per 16.66 ms frame
; 640. X 896.
;704. x 896.
;Sync for 64 Mhz crystal,  768. x 896.
larsbrinkhoff commented 7 years ago

@ams Looks like you were right. From SYSEN2; RECORD 31:

;tv's have 455. vertical lines of 576. dots (262080. bits out 'o 262144).

;organized as 9 64.-bit words (equiv to 18. 32.-bit words) per line.
;the pdp10 accesses half of such a word (or two 16.-bit chunks) at once.
;these 32. bits are packed left justified into the 36. bits.

;tvend (or the last word of the tv-memory) has two functions:
;bit  200000 when on, complements the black/white output.
;bits 177760 is a counter for which 64.-bit word the frame is to start on.
;for winnage the number ought to be a multiple of 9.

;Characters are 10. lines high and 5 points wide (right and top justified).
;Line-pitch is 12. TV-lines, Character-pitch is 6 TV-points.
;That's 96. chrs/line exactly and 37. and 11./12. lines (3552. chrs).
mctuva commented 7 years ago

Anyone remember how many frame buffers there were? And how many TVs? Since each frame buffer was 32kB, and there are only 64kB in the PDP-11 address space, they must have made extensive use of bank-switching to allow the TV-11 to get to it all. TK mentioned that the PDP-10 rendered all the graphics. I remember vaguely that the PDP-11 was the character generator, though I'm guessing there might have been special hardware to assist. For the multi-font XGP (Xerox Graphics Printer) that PDP-11 did all the font rendering in code "bummed to within an inch of its life," recalls TK.

larsbrinkhoff commented 7 years ago

I think the number of PDP-11s connected were limited by the address space of the Rubin 10-11 interface. It occupied one of AI's four mobies. One moby can address 16 64k spaces, but somehow I recall seeing the number 8 as the maximum.

larsbrinkhoff commented 6 years ago

@mctuva Do you know if TK has any documentation, schematics, blueprints etc for the 10-11 interface?

larsbrinkhoff commented 6 years ago

I stumbled across this in SYSTEM; CONFIG >:

DEFOPT T11CHP==1      ; CHAOS net goes through TEN-11 interface
DEFOPT CH11NM==7      ; # of 10-11 PDP11 handling CHAOS net.
DEFOPT TT11NM==0      ; # of 10-11 PDP11 that handles TV TTYs.
DEFOPT N11TYS==16.    ; # PDP11 TV TTYS

I think this means that one of the 10-11 PDP-11s handles CHAOSnet, and another one handled the Knight TV system. And then there were one PDP-11 for each TV, of which there were 16.

aap commented 6 years ago

I don't think one PDP-11 for each TV. The parameter probably just says now many TVs there were attached to one 11.

mctuva commented 6 years ago

I can ask.

--Tim

On Dec 20, 2017, at 02:52, Lars Brinkhoff notifications@github.com wrote:

@mctuva Do you know if TK has any documentation, schematics, blueprints etc for the 10-11 interface?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

mctuva commented 6 years ago

That sounds like too many 11s. Pretty sure a single 11 could handle multiple TVs.

--Tim

On Dec 20, 2017, at 03:14, Lars Brinkhoff notifications@github.com wrote:

I stumbled across this in SYSTEM; CONFIG >:

DEFOPT T11CHP==1 ; CHAOS net goes through TEN-11 interface DEFOPT CH11NM==7 ; # of 10-11 PDP11 handling CHAOS net. DEFOPT TT11NM==0 ; # of 10-11 PDP11 that handles TV TTYs. DEFOPT N11TYS==16. ; # PDP11 TV TTYS I think this means that one of the 10-11 PDP-11s handles CHAOSnet, and another one handled the Knight TV system. And then there were one PDP-11 for each TV, of which there were 16.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

mctuva commented 6 years ago

Hi Lars,

TK says he has schematics, and will scan them as soon as he has time.

Do you know if the PDP-11 code was preserved anywhere? That is key, since software was at least half the picture.

--Tim

On 12/20/17 2:52 AM, Lars Brinkhoff wrote:

@mctuva https://github.com/mctuva Do you know if TK has any documentation, schematics, blueprints etc for the 10-11 interface?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/279#issuecomment-352990659, or mute the thread https://github.com/notifications/unsubscribe-auth/ANh4Hi3Q4x9FpQqJa3WbyInndonK5jUZks5tCLyxgaJpZM4LPLOk.

larsbrinkhoff commented 6 years ago

@mctuva That's great!

We have the IOELEV and TV files in SYSTEM, and the PALX cross assembler in SYSEN1.

larsbrinkhoff commented 6 years ago

@mctuva Ping! Any progress on the schematics?

mctuva commented 6 years ago

No. Sorry. I’ll let you know if I hear anything from TK.

--Tim

On Jan 18, 2018, at 03:01, Lars Brinkhoff notifications@github.com wrote:

@mctuva Ping! Any progress on the schematics?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

larsbrinkhoff commented 6 years ago

https://dspace.mit.edu/bitstream/handle/1721.1/6221/AIM-307a.pdf says the Knight TV display was 455x576. See page 73.

aap commented 6 years ago

From SYSTEM; TV >

BITPL==1100             ;BITS PER LINE
NLINS==706              ;LINES ON SCREEN

so 576x454.

larsbrinkhoff commented 6 years ago

@Devon7 about the display:

Very slow fade, you could still read an erased screen although it was very dim, maybe even a minute later. Soft edged pixel blobs but no fog effect to speak of.

larsbrinkhoff commented 6 years ago

There are 8 pages in a frame buffer. There are 576 pixels, or 36 PDP-11 16-bit words per line. The PDP-10 accesses two PDP-11 words per PDP-10 word (left justified) through the Rubin 10-11 interface. So on the PDP-10, each line is 18 words with some bits unused.

Characters are 5x10 pixels, laid out 6x12 on the display. So there are 96x37 characters, with some lines unused at the bottom.

larsbrinkhoff commented 6 years ago

Isn't there a list of programs using the Knight TV? I better start one:

larsbrinkhoff commented 6 years ago

Maybe P2 phosphor?

Peak wavelength 510 nm. Decay time 120 ms to 0.1% of original value.

http://w140.com/tekwiki/wiki/Phosphor

larsbrinkhoff commented 6 years ago

Or 543 nm according to another source.

http://www.bunkerofdoom.com/tubes/crt/crt_phosphor_research.pdf

larsbrinkhoff commented 6 years ago

P39 phosphor according to message from Tom Knight.

CIE XY coordinates 0.195, 0.697 or 0.197, 0.712.

Peak wavelength 525 nm.

larsbrinkhoff commented 6 years ago

That's plain RGB green with no red or blue, if a random converter on the web is to be believed.

larsbrinkhoff commented 6 years ago

Maybe Knight TV?

http://projects.csail.mit.edu/video/history/aifilms/x05-graphics.mp4

larsbrinkhoff commented 6 years ago

Hello @dpeschel,

Just the other day in 2001, you asked about the ITS display system. Maybe you can find some answers in comments to this issue.

larsbrinkhoff commented 6 years ago

Ed Schwalenberg:

The niftiest feature of the ITS/Knight system were the run-bars at the bottom of the screen: a "bar" 32 bits wide by one bit tall lit up when your job was actually running, and another one lit up when the system was busy fetching pages from the swap area in order to run your job.

Devon7 commented 6 years ago

On Mar 5, 2018, at 9:00 AM, Lars Brinkhoff notifications@github.com wrote: Maybe Knight TV?

http://projects.csail.mit.edu/video/history/aifilms/x05-graphics.mp4 http://projects.csail.mit.edu/video/history/aifilms/x05-graphics.mp4 No, not green and higher res, maybe a Symbolics 36xx console.

    Peace
        —Devon

P.S. BKPH = Berthold P. K. Horn

ams commented 6 years ago

Doesn’t look like a 3600, or for that matter CADR display — no modeline. Any year on the video?

ams commented 6 years ago

Or run lights for that matter...

larsbrinkhoff commented 6 years ago

Ed Schwalenberg says there are Knight TV screenshots on page WP-5 here:
https://archive.org/details/seyboldreportonw00medi

Devon7 commented 6 years ago

On Mar 22, 2018, at 3:07 PM, Lars Brinkhoff notifications@github.com wrote: Ed Schwalenberg says there are Knight TV screenshots on page WP-5 here: https://archive.org/details/seyboldreportonw00medi https://archive.org/details/seyboldreportonw00mediSnoopy dazed Snoopy cursing the Red Baron Dragon Unicorn Tortoise Wumpus

    Peace
        —Devon

P.S. All familiar to KTV users — hope I find those bitmaps... $200/MONTH in 1978 dollars, lol!

P.P.S. Anyone attending https://LibrePlanet.org/2018/program?

larsbrinkhoff commented 6 years ago

Well, here's the dragon, but it's not a bitmap:
http://up.update.uu.se/DSK%3A-PICS-%3BDRAGON%20SVG

And here's the wumpus:
http://up.update.uu.se/DSK%3A-PICS-%3BWUMPUS%20SVG

larsbrinkhoff commented 6 years ago

About the x05-graphics video, I wrote to BKPH to ask if it was a Knight TV or Lisp machine. He answered:

I'm pretty sure it was a Knight TV, since I wrote most of that code on the PDP10. We were fascinated by the continuously refreshed raster display (compared to the old DEC display on the PDP10), and the time sharing ability of these new displays (before, there was only one display, and we had to sign up for all kinds of ungodly hours to get to use it).

Devon7 commented 6 years ago

On Mar 23, 2018, at 11:21 AM, Lars Brinkhoff notifications@github.com wrote: About the x05-graphics video, I wrote to BKPH to ask if it was a Knight TV or Lisp machine. He answered:

I'm pretty sure it was a Knight TV, since I wrote most of that code on the PDP10. We were fascinated by the continuously refreshed raster display (compared to the old DEC display on the PDP10), and the time sharing ability of these new displays (before, there was only one display, and we had to sign up for all kinds of ungodly hours to get to use it).

I suppose it could have been a monochrome video of a green KTV screen, to my eye that display has more pixels than the KTV but it’s been decades.

    Peace
        --Devon
larsbrinkhoff commented 6 years ago

Yes, those are monochrome videos.

Here's what Ed Schwaleberg thinks:

The clues that tell me it's a Knight TV are:

  1. BKPH is Berthold Horn.
  2. The resolution is about right. 576x454 or so. No gray scale.
  3. The rapid flipping from white-on-black to black-on-white was a keyboard command: Escape-C for complement. (Escape was a separate key, not related to ASCII ESC which we called "alt" and was shown on screen as a diamond.)
  4. In later scenes you can see the status line at the bottom of the screen.
  5. Most of the moire pictures are the result of drawing in XOR mode. That's another feature of Knight TVs: they had an ALU between the computer and the display memory, so you could OR, XOR or AND in new data.
atsampson commented 6 years ago

At 4m48, once the display fills up with text and starts to scroll, you can count 37 lines, which also matches the Knight TV resolution above. It certainly would be nice to have a higher-resolution version of this where we could actually read the text (is that a PEEK display at 9m30?)...

Are there any other videos of someone interacting with an ITS machine?