mirror of
https://github.com/PDP-10/its.git
synced 2026-03-23 09:19:24 +00:00
Wiki pages from Living Computer Museum.
https://wiki.livingcomputers.org/doku.php?id=its_topics
This commit is contained in:
12
doc/wiki/its_ards
Normal file
12
doc/wiki/its_ards
Normal file
@@ -0,0 +1,12 @@
|
||||
<h4 id="ards">ARDS</h4>
|
||||
<div class="level4">
|
||||
|
||||
<p>
|
||||
ARDS, or Advanced Remote Display System, was ground breaking storage CRT display terminal technology developed at MIT in the 1960s. A company called Computer Displays Inc. was spun off to commercialize the technology. The terminals were mostly used with CTSS, but the AI lab <a href="/doku.php?id=programming_the_pdp-6" class="wikilink1" title="programming_the_pdp-6">PDP-6</a> also had a few.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href="/doku.php?id=its_topics" class="wikilink1" title="its_topics">ITS</a> retains some traces of ARDS support. The terminal type was removed in 1976 and replaced by Tektronix. There is a program called ARDPRN for displaying graphics files on a capable display such as <a href="/doku.php?id=its_imlac" class="wikilink1" title="its_imlac">Imlacs</a>. The BIG music program can draw scores in ARDS format.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
33
doc/wiki/its_console
Normal file
33
doc/wiki/its_console
Normal file
@@ -0,0 +1,33 @@
|
||||
<p>
|
||||
<strong>ITS console panel functions</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you are lucky to run ITS on a
|
||||
</p>
|
||||
<ul>
|
||||
<li class="level1"><div class="li"> real KA10,</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> PiDP-10,</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> KL10 with KL-UDGE board, or</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> emulator with Panda Display board</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
You will have some lights and switches. In addition to the normal functions, ITS has some more:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The memory indicator lights show which job is running. This can be disabled by setting MIPGDS to -1. To control the lights from a user program, use .IOTLSR to enable IOT user mode and write to the lights register with DATAO PI,AC.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Data switch 0 will make ITS go to NTS DDT. This is very useful to set breakpoints etc, for debugging ITS. Switches can be read from a user program with DATAI APR,AC.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
On the PDP-6, the memory indicator lights are connected to speakers.
|
||||
</p>
|
||||
51
doc/wiki/its_emulators
Normal file
51
doc/wiki/its_emulators
Normal file
@@ -0,0 +1,51 @@
|
||||
<p>
|
||||
<strong>Emulators for ITS</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
ITS can run on the following PDP-10 emulators:
|
||||
</p>
|
||||
<ul>
|
||||
<li class="level1"><div class="li"> SIMH KS10 - Plain KS10 with RP06 disk packs and Chaosnet.</div>
|
||||
</li>
|
||||
<li class="level1 node"><div class="li"> SIMH KA10 - KA10 processor with:</div>
|
||||
<ul>
|
||||
<li class="level2"><div class="li"> Type 340 vector display.</div>
|
||||
</li>
|
||||
<li class="level2"><div class="li"> Slave PDP-6 processor.</div>
|
||||
</li>
|
||||
<li class="level2"><div class="li"> 10-11 interface for attached PDP-11 processors.</div>
|
||||
</li>
|
||||
<li class="level2"><div class="li"> IMP networking.</div>
|
||||
</li>
|
||||
<li class="level2"><div class="li"> Chaosnet.</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> SIMH KL10 - KL10 processor with RP04 disk packs.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> KLH10 - KS10 processor, IMP networking, Chaosnet.</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Emulators that can be used with ITS:
|
||||
</p>
|
||||
<ul>
|
||||
<li class="level1"><div class="li"> Angelo Papenhoff's PDP-6 simulator.can attach to KA10.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Angelo's TV-11 is a PDP-11 emulator with Knight TV support. See <a href="/doku.php?id=its_managing_tv11" class="wikilink1" title="its_managing_tv11">its_managing_tv11</a>.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Angelo's tvcon emulates a Knight TV console.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Lars Brinkhoff's CRT simulator can display a 340 or color scope.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Angelo's Datapoint 3300 and VT52 terminal emulators.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Rene Richarz' Tektronix 4010 emulator.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> SIMH PDP-11 can emulate a GT40. See <a href="/doku.php?id=its_using_gt40" class="wikilink1" title="its_using_gt40">its_using_gt40</a>.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Josh Dersch's sImlac for Imlac PDS-1 emulation. See <a href="/doku.php?id=its_imlac" class="wikilink1" title="its_imlac">its_imlac</a>.</div>
|
||||
</li>
|
||||
</ul>
|
||||
51
doc/wiki/its_games
Normal file
51
doc/wiki/its_games
Normal file
@@ -0,0 +1,51 @@
|
||||
<p>
|
||||
<strong>Games found on ITS</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>MacHac VI</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Greenblatt's chess program. <code>:GAMES;C</code> displays on the 340, and <code>:GAMES;OCM</code> on the Knight TV.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Spacewar</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Spacewar is mainly for the PDP-6, but there is also a timesharing version available. To run out of timesharing, start <code>SPCWAR</code> or <code>WAR</code> from DSKDMP. The latter is an older version. The timesharing version is <code>:GAMES;SPCWAR</code>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
There are also versions for Imlac, GT40, and Knight TV.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Dazzle Dart</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This is a four-player game where teams of two play against each other. A beam of light can be fired and must reflect off a surface to land in the goal to score a point. The original ran on the <a href="/doku.php?id=its_logo" class="wikilink1" title="its_logo">Logo group PDP-11/45</a>. The PDP-6 version is <code>.;@ DAZDRT</code>, and a timesharing version is <code>:GAMES;DAZDRT</code>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Adventure</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<code>:ADVENT</code> is the original Will Crowther cave exploration game.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Not yet functional games</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Zork. The problem is that Zork must be compiled to fit in memory, and the compiler is missing. There are also missing libraries such as the assembler.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Maze. It expects to find character definitions from a particular location in SSV, which doesn't match the working version of SSV. Also possible display modification problem.
|
||||
</p>
|
||||
16
doc/wiki/its_hosts
Normal file
16
doc/wiki/its_hosts
Normal file
@@ -0,0 +1,16 @@
|
||||
<h4 id="updating_its_host_table">Updating ITS' host table</h4>
|
||||
<div class="level4">
|
||||
|
||||
<p>
|
||||
ITS was used mostly in the era before <abbr title="Domain Name System">DNS</abbr>, when a hosts.txt file was regularly distributed to all Arpanet hosts. If you want to add a new host and its IP number, you have to update ITS' host table.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
ITS' human readable host table is in the file <code>SYSHST; H3TEXT ></code>. You update it with a regular text editor. To add a new host, enter a line like <code>HOST : A.B.C.D : NAME : MACHINE : <abbr title="Operating System">OS</abbr> : :</code>. A.B.C.D is the IP number, and NAME is the hostname. MACHINE and <abbr title="Operating System">OS</abbr> are free text descriptions.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Having done this, you have to update the binary host table <code>SYSBIN; HOSTS3 ></code> which is what programs actually use to look up host names. To update this from the text file, just run <code>:SYSHST;H3MAKE</code>.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
67
doc/wiki/its_imlac
Normal file
67
doc/wiki/its_imlac
Normal file
@@ -0,0 +1,67 @@
|
||||
<h4 id="its_and_imlac">ITS and Imlac</h4>
|
||||
<div class="level4">
|
||||
|
||||
</div>
|
||||
|
||||
<h5 id="background">Background</h5>
|
||||
<div class="level5">
|
||||
|
||||
<p>
|
||||
Some ITS machines had Imlac PDS-1 machines attached. Primarily the Dynamic Modeling PDP-10, were the MAZE game was developed into a fast paced multiuser game. The Mathlab PDP-10 also had a few Imlacs, probably used mostly for Macsyma. As far as we can see, there also was one PDS-4.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<h5 id="software_types">Software types</h5>
|
||||
<div class="level5">
|
||||
|
||||
<p>
|
||||
The DM Imlacs ran older software called SSV, or screen saver. MAZE probably assumes some particular versions of SSV, which we may not have now. The preferred text editor with SSV is IMEDIT. The ITS terminal type for SSV is %TVIML, or OIMLAC in TCTYP. There is a newer software called SST which is much better for full screen editors like TECO or EMACS. This terminal type is %TNSFW, but it really is safe for work. The PDS-4 ran a tailored version of SSV called SSV4. There was also an ancient program called SIC, and a alternative program called WIMPY which didn't seem to gain a following. STV seems to be another name for SST.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<h5 id="loading_software">Loading software</h5>
|
||||
<div class="level5">
|
||||
|
||||
<p>
|
||||
The Imlacs receive their software by upload from ITS. Start the Imlac bootstrap at location 40, and run the program IMLOAD. At the <code>@</code> prompt, type OUTPUT_INPUT, where OUTPUT is <code>Tnn:</code> to specify the terminal line, and INPUT is the file to load. As a convenience it's possible to type just <code>nn</code> to load the “normal” program. IMLOAD tries to open, in this order, <user>; .PRGM. Tnn, <user> .PRGM. NORMAL, IMLAC; .PRGM. Tnn, and IMLAC; .PRGM. NORMAL. To reload the Imlac you're currently using, just type enter.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<h5 id="development_tools">Development tools</h5>
|
||||
<div class="level5">
|
||||
|
||||
<p>
|
||||
Software development tools for the Imlac consists of the regular MIDAS assembler, a set of MIDAS definitions and macros to generate Imlac code, and the program IMTRAN which translates MIDAS binary output to a format accepted by the Imlac TTY bootstrap.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<h5 id="emulation">Emulation</h5>
|
||||
<div class="level5">
|
||||
|
||||
<p>
|
||||
Josh Dersch has written an Imlac PDS-1 emulator, which can attach to a PDP-10 emulator serial line. ITS as built from the GitHub repository has T50 configured with the “OIMLAC” terminal type, i.e. Imlac running SSV. The PDP-10 emulator has TCP port 10016 connected to T50. The Imlac emulator can be conveniently started and connected to ITS by typing <code>./start imlac</code>. When first started the Imlac memory is blank, so it must be loaded with IMLOAD.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<h5 id="terminal_types">Terminal types</h5>
|
||||
<div class="level5">
|
||||
|
||||
<p>
|
||||
The TCTYP program used to have a terminal type called IMLAC for Imlacs running SSV. When SSV fell out of favor, the IMLAC terminal type was changed to refer to SST instead. The old SSV type has been added back under the name OIMLAC. If the terminal type is wrong, output will look garbled; just run TCTYP to set the correct type.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<h5 id="graphics_files">Graphics files</h5>
|
||||
<div class="level5">
|
||||
|
||||
<p>
|
||||
SSV can display <a href="/doku.php?id=its_ards" class="wikilink1" title="its_ards">ARDS</a> graphics. To view files in the -PICS- directory, run the IMPRINT program and pass a file name on the command line.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
111
doc/wiki/its_lisp
Normal file
111
doc/wiki/its_lisp
Normal file
@@ -0,0 +1,111 @@
|
||||
<p>
|
||||
<strong>PDP-10 Maclisp</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The ITS Lisp is called Maclisp, or PDP-10 Maclisp if necessary to disambiguate it against <a href="/doku.php?id=multics_maclisp" class="wikilink1" title="multics_maclisp">Multics Maclisp</a>. Its direct ancestor is <a href="/doku.php?id=its_pdp6_lisp" class="wikilink1" title="its_pdp6_lisp">PDP-6 LISP</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>A sample MACLISP session on ITS using LEDIT MODE in EMACS</strong>
|
||||
<em>LEDIT will work on both <a href="/doku.php?id=its_topics" class="wikilink1" title="its_topics">ITS</a> and <a href="/doku.php?id=tops-20" class="wikilink1" title="tops-20">TOPS-20</a> ;tnx1.0e6 to GLS</em>
|
||||
</p>
|
||||
<pre class="code">
|
||||
KA ITS 1648 DDT 1547 TTY 52 ;System herald
|
||||
|
||||
:login smith ;The luser logs in
|
||||
|
||||
:lisp ;MACLISP is started
|
||||
|
||||
LISP 2154 ;MACLISP version
|
||||
ALLOC? N ;Take the world defaults
|
||||
|
||||
(plus 3.14 2.71) ;Add two numbers
|
||||
5.85
|
||||
|
||||
(car '(simple list)) ;Return the CAR of a LIST
|
||||
SIMPLE
|
||||
|
||||
(ledit) ;Enters EMACS in LEDIT MODE
|
||||
|
||||
(defun sum-squares (a b) ;Typed into the EMACS buffer
|
||||
(plus (times a a
|
||||
(times b b)))) ;META-Z pushes DEFUN to the world
|
||||
;CTRL-X Z returns to LISP
|
||||
|
||||
;READING FROM LEDIT SUN-SQUARES ;Back in LISP
|
||||
;EDIT COMPLETED
|
||||
|
||||
(sum-squares 2.0 3.0) ;call SUM-SQUARES
|
||||
36.0 ;Returns the wrong number
|
||||
|
||||
(ledit) ;Re-enter EMACS in LEDIT MODE
|
||||
|
||||
CTRL-S (times a a ;Typed into EMACS
|
||||
;Search for STRING (times a a
|
||||
|
||||
(defun sum-squares (a b) ;Correct SUM-SQUARES
|
||||
(plus (times a a)
|
||||
(times b b))) ;META-Z pushes new DEFUN to world
|
||||
;CTRL-X Z returns to LISP
|
||||
|
||||
;READING FROM LEDIT SUM-SQUARES ;Back in LISP
|
||||
;EDIT COMPLETED
|
||||
|
||||
(sum-squares 2.0 3.0) ;Call SUM-SQUARES again
|
||||
13.0 ;Correct result</pre>
|
||||
|
||||
<p>
|
||||
<em>The LISP … Editor … LISP … loop will no doubt be repeated many times.</em>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>HELLO WORLD and LOOP examples</strong>
|
||||
</p>
|
||||
<pre class="code"> @maclisp ; start MACLISP at the TOPS-20 EXEC
|
||||
|
||||
LISP 2122 ; MACLISP Version 2122
|
||||
Alloc? n ; take the defaults
|
||||
|
||||
|
||||
*
|
||||
(defun HELLO () ; DEFINE FUNCTION "HELLO"
|
||||
(princ "Hello World!")) ; print characters "Hello World!"
|
||||
HELLO ; MACLISP reports a definition for the function "HELLO"
|
||||
(hello)Hello World! ; The function "HELLO" is called and "Hello World!" is printed
|
||||
T ; MACLISP reports T for a successful function call</pre>
|
||||
<pre class="code"> @maclisp
|
||||
|
||||
LISP 2122
|
||||
Alloc? n
|
||||
|
||||
|
||||
*
|
||||
(loop for x in '(a b c d e) ; Call the macro "LOOP" for VARIABLE "x" in a list of "a b c d e"
|
||||
do (print x)) ; DO a PRINT of the value of "x"
|
||||
;Loading LOOP 725 ; MACLISP loads LOOP version 725
|
||||
;Loading DEFMAX 98 ; MACLISP loads DEFMAX version 98
|
||||
A ; 1. X = A
|
||||
B ; 2. X = B
|
||||
C ; 3. X = C
|
||||
D ; 4. X = D
|
||||
E ; 5. X = E
|
||||
NIL ; DO called PRINT X which returned NIL because there was nothing
|
||||
; left to PRINT in the list of "a b c d e"</pre>
|
||||
|
||||
<p>
|
||||
<strong>MATH examples</strong>
|
||||
</p>
|
||||
<pre class="code"> @maclisp
|
||||
|
||||
LISP 2122
|
||||
Alloc? n
|
||||
|
||||
|
||||
*
|
||||
(+ 2 2)
|
||||
4
|
||||
(- 2 2)
|
||||
0
|
||||
(* 2 2)
|
||||
4</pre>
|
||||
37
doc/wiki/its_logo
Normal file
37
doc/wiki/its_logo
Normal file
@@ -0,0 +1,37 @@
|
||||
<p>
|
||||
<strong>ITS and the Logo programming language</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
ITS was host to a lot of Logo development. There are many implementations available:
|
||||
</p>
|
||||
<ul>
|
||||
<li class="level1"><div class="li"> BBN Logo for the PDP-10</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> MIT PDP-10 Logo developed from BBN Logo</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> PDP-11 Logo</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Lisp Logo</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> General Turtle, is not available yet</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Apple II Logo</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
PDP-11 Logo was the reference implementation. It ran on a PDP-11/45 with special display hardware added. There were older vector displays by Tom Knight, and newer raster displays by Ron Lebel (mostly same as the Knight TV hardware).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
At first PDP-11 Logo ran on the metal, but later a timesharing system was developed. It was called SITS, or Small ITS. The initial design was similar to ITS, but later development took inspiration from MIT's PDP-1X timesharing system.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
A minimal Little SITS emulator was used to run PDP-11 Logo on the General Turtle LSI-11 processor.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Hal Abelson et al wrote an interesting game using the vector displays, called Dazzle Dart. Two teams of two plays against each other, and the objective is to shine a ray of light in the opposing team's goal. The ray must reflect at least once for a goal to be scored, making it possibly the first game with ray tracing.
|
||||
</p>
|
||||
28
doc/wiki/its_machines
Normal file
28
doc/wiki/its_machines
Normal file
@@ -0,0 +1,28 @@
|
||||
<h4 id="historical_its_machines">Historical ITS machines</h4>
|
||||
<div class="level4">
|
||||
<ul>
|
||||
<li class="level1"><div class="li"> The AI lab PDP-6 arrived in 1964. It never had a name per se. It was first used standalone, but a need for timesharing resulted in ITS running in July 1967.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Next came the AI lab PDP-10 with a KA10 processor. It was named AI when ITS moved to more machines.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> The Dynamic Modeling group received a pre-owned PDP-6 in 1969. It was never used much.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> The DM KA10 arrived in 1970.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> The Mathlab KA10 was delivered in 1971 and became operational during 1972. It was named ML.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> The Macsyma Consortium KL10 arrived in 1975 and was named MC.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> In the late 1970s, the two PDP-6 machines fell into disrepair.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> In the early 1980s, the three KA10 machines were shut down.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Four new KS10 machines were donated by DEC in the mid 1980s and ITS was ported. They took the names AI, ML, MD, and MX.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> MX and MC swapped names, and the KL10 was shipped to Sweden in 1988.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> The last KS10 machines were shut down in 1990, with AI briefly making a reappearence in 1991 to send a farewell message to SAIL.</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
19
doc/wiki/its_managing_tv11
Normal file
19
doc/wiki/its_managing_tv11
Normal file
@@ -0,0 +1,19 @@
|
||||
<p>
|
||||
<strong>Managing the TV-11.</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The AI lab PDP-10 had a “10-11” interface with up to eight Unibuses. Each Unibus is mapped into PDP-10 memory and can be used to attach a PDP-11. Or other Unibus processors like the CONS Lisp machine, or the CHEOPS chess accelerator. The TV-11 was a PDP-11/20 attached to 10-11 Unibus number 0, suggesting it was the first to use this facility. It was shortly followed by the XGP-11, an PDP-11/10 driving the XGP printer. The TV-11 has bitmapped framebuffers, a video switch, and a keyboard scanner. It was used for raster display workstations around Tech Square.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For the TV-11 to work, it must be running, connected to the 10-11 interface, and loaded with the TV-11 software. On the PDP-10 side, ITS must be assembled with TV11P. The location TT11P controls ITS' view of the TV-11: 0 means off, -1 means running, and 1 means reinitialize.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
There is a software emulator for the TV-11 and its Knight TV and keyboard hardware, called tv11 and tvcon. The tv11 talks to the PDP-10 emulator through TCP/IP; this provides the 10-11 interface. When ITS has booted, the TV-11 software must be loaded. This is done by running <em>:STUFF TV</em>. If the 10-11 interface works, the software will be written to the PDP-11/20 core memory. Next, ITS must be told to reinitialize its communication with the TV-11. This is done by depositing 1 to ITS location TT11P. STUFF and TT11P are normally automatically handled by the program CHANNA; RAKASH TVFIX.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The TV “console” emulator, i.e the display and keyboard, is a separate program called tvcon. It talks to tv11 through TCP/IP.
|
||||
</p>
|
||||
25
doc/wiki/its_music
Normal file
25
doc/wiki/its_music
Normal file
@@ -0,0 +1,25 @@
|
||||
<p>
|
||||
<strong>Playing music from ITS</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To play music, the PDP-6 is required.
|
||||
</p>
|
||||
<ol>
|
||||
<li class="level1"><div class="li"> Power on the PDP-6.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Set address switches to 000000 and toggle the start switch.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Start MUSRUN.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> The command to load a music file is the single letter <code>L</code>.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Type the file name and carriage return.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> MUSRUN will now load the music data into PDP-6 core memory.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Set PDP-6 data switch 1 to on to start playing.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Set switch 0 to stop playing.</div>
|
||||
</li>
|
||||
</ol>
|
||||
55
doc/wiki/its_pdp11
Normal file
55
doc/wiki/its_pdp11
Normal file
@@ -0,0 +1,55 @@
|
||||
<p>
|
||||
<strong>ITS and PDP-11 machines</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
There is great support for programming PDP-11 machines in ITS. Software tools are:
|
||||
</p>
|
||||
<ul>
|
||||
<li class="level1"><div class="li"> PALX - assembler.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> 11STNK - linker.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> 11SIM - simulator.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> STUFF - write to PDP-11 memory.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> And plethora of DDT-like debuggers, often named RUG.</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
On the hardware side, there is the “Rubin 10-11 Interface” made by Jack Rubin. It's a device which is mapped into PDP-10 memory space on one side, and eight Unibuses on the other. Here's a list of the attached processors:
|
||||
</p>
|
||||
<ol>
|
||||
<li class="level1"><div class="li"> TV-11, the Knight TV controller; a PDP-11/20. See <a href="/doku.php?id=its_managing_tv11" class="wikilink1" title="its_managing_tv11">its_managing_tv11</a></div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> XGP-11, for the printer; a PDP-11/10.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> CONS, Lisp machine prototype. Also GT40 as its console.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> CHEOPS, chess accelerator.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Logo group PDP-11/45.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Micro automation PDP-11/40.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Vision PDP-11/40.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> CHAOS-11, Chaosnet gateway for the AI PDP-10.</div>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
Some other PDP-11s on the MIT campus:
|
||||
</p>
|
||||
<ul>
|
||||
<li class="level1"><div class="li"> Ed Fredkin's GT44 / PDP-11/40.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> The Plasma Physics Grinnel TV system attached to MIT-MC.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> The MIT-MC front end PDP-11/40 with custom software.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> The MIT-MC DC76 front end with custom software.</div>
|
||||
</li>
|
||||
</ul>
|
||||
21
doc/wiki/its_pdp6_lisp
Normal file
21
doc/wiki/its_pdp6_lisp
Normal file
@@ -0,0 +1,21 @@
|
||||
<p>
|
||||
<strong>PDP-6 LISP</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
ITS has a copy of PDP-6 LISP, found on a DECtape from Peter Samson. It's located in the <code>.</code> directory. To run it, the computer must be taken out of timesharing. From DSKDMP, just type <code>lisp</code> to start PDP-6 LISP. It has been patched to run on a PDP-10 as well.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Here is a sample session which displays <code>HELLO-WORLD</code> on the 340 display.
|
||||
</p>
|
||||
<pre class="code"> ALLOC? N
|
||||
|
||||
(ARRAY HELLO T 100)
|
||||
36233
|
||||
(DISINI (QUOTE HELLO))
|
||||
NIL
|
||||
(SETQ DISLIST (LIST (GET (QUOTE HELLO) (QUOTE SUBR))))
|
||||
(#36171)
|
||||
(DIDAS (QUOTE HELLO) NIL (QUOTE HELLO-WORLD))
|
||||
T</pre>
|
||||
15
doc/wiki/its_secrets
Normal file
15
doc/wiki/its_secrets
Normal file
@@ -0,0 +1,15 @@
|
||||
<p>
|
||||
<strong>Don't read this</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To patch ITS while it's running, first type <code>sys$j</code> to get the sysjob. This job has the core image of the ITS monitor, but it's write-protected by default. To unprotect it, type <code>$$^R</code>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To get a directory listing, type <code>^R m.f.d. (file)</code>. Or run PEEK on the 340 display (type <code>^Y</code>) and type <code>D</code>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To make a new directory, say foobar, type <code>^R foobar; ..new. (udir)</code>. Unless on a really old ITS… in which case you must patch the ITS location NUFDTB with the sixbit name of the directory, and then access a file in it.
|
||||
</p>
|
||||
105
doc/wiki/its_starting_and_stopping
Normal file
105
doc/wiki/its_starting_and_stopping
Normal file
@@ -0,0 +1,105 @@
|
||||
<p>
|
||||
<strong>Starting and stopping ITS</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Except on KL10, starting ITS goes like this:
|
||||
</p>
|
||||
<ol>
|
||||
<li class="level1 node"><div class="li"> Start DSKDMP.</div>
|
||||
<ul>
|
||||
<li class="level2"><div class="li"> On a KA10 this is most often done from paper tape, but magnetic tape is also possible.</div>
|
||||
</li>
|
||||
<li class="level2"><div class="li"> On a KS10, use the <code>BT</code> console command to boot into DSKDMP.</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> DSKDMP will announce itself eponymously.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Select an ITS core image. Conventionally it should be @ ITS. Type <em>F Altmode</em> to see a file listing.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> To load and run ITS, type the file name and enter. If the first file name is @ that can be omitted.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> First DDT is entered. Here's a chance to debug ITS, set breakpoints, etc.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> To start ITS running, type <em>Altmode G</em>.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> The Salvager will check the disks and then ITS IN OPERATION is printed.</div>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
On the KL10, there is no DSKDMP. DDT is used to load a core image and start.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Stopping ITS goes like this:
|
||||
</p>
|
||||
<ol>
|
||||
<li class="level1"><div class="li"> Log in and run LOCK.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Type <em>5DOWN</em> to have ITS shut down in 5 minutes. This is the minimum.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Type <em>Y</em> to confirm.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Type a message terminated by a <em>^C</em>.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Type <em>Q</em> to exit LOCK.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> When all users are logged out, ITS will shut down immediately regardless of the grace period.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> When “YOU ARE NOW IN DDT” is printed, it's safe to power off.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Optionally you can restart ITS from DDT, or go back to DSKDMP by jumping to address 777700.</div>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
A transcript of starting ITS, logging in, and stopping. It has been edited for brevity.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<code> DSKDMP</code><br/>
|
||||
|
||||
<em>its</em><br/>
|
||||
|
||||
<em>$G</em><br/>
|
||||
|
||||
<code>SALVAGER.317</code><br/>
|
||||
|
||||
<code>ITS 1649 IN OPERATION</code><br/>
|
||||
|
||||
<code>ITS 1649 SYSTEM JOB USING THIS CONSOLE.</code><br/>
|
||||
|
||||
<em>^Z</em><br/>
|
||||
|
||||
<code>ITS.1649. DDT.1547.</code><br/>
|
||||
|
||||
<code>TTY 0</code><br/>
|
||||
|
||||
<code>You're all alone, Fair share = 99%</code><br/>
|
||||
|
||||
<em>:lock</em><br/>
|
||||
|
||||
<code> LOCK.156</code><br/>
|
||||
|
||||
<code>_</code><em>5down</em><br/>
|
||||
|
||||
<code>DO YOU REALLY WANT THE SYSTEM TO GO DOWN?</code><br/>
|
||||
|
||||
<em>Y</em><br/>
|
||||
|
||||
<code>PLEASE ENTER A BRIEF MESSAGE TO USERS, ENDED BY ^C</code><br/>
|
||||
|
||||
<em>Bye.</em><br/>
|
||||
|
||||
<em>^C</em><br/>
|
||||
|
||||
<code>ITS 1649 NOT IN OPERATION</code><br/>
|
||||
|
||||
<code>SHUTDOWN COMPLETE</code><br/>
|
||||
|
||||
<code>PI LEVEL 7 BUGDDT. TYPE <ALTMODE>P TO CONTINUE.</code><br/>
|
||||
|
||||
<code>YOU ARE NOW IN DDT.</code>
|
||||
</p>
|
||||
99
doc/wiki/its_survival_guide
Normal file
99
doc/wiki/its_survival_guide
Normal file
@@ -0,0 +1,99 @@
|
||||
<p>
|
||||
<strong>ITS Survival Guide</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Here a summary of useful commands for ITS in comparison common UNIX commands.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Everywhere $ is written, it means typing Escape.
|
||||
</p>
|
||||
<div class="table sectionedit1"><table class="inline">
|
||||
<thead>
|
||||
<tr class="row0">
|
||||
<th class="col0">UNIX </th><th class="col1">DDT </th><th class="col2">CP</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr class="row1">
|
||||
<td class="col0">login: user </td><td class="col1"> user$u </td><td class="col2"> :login user </td>
|
||||
</tr>
|
||||
<tr class="row2">
|
||||
<td class="col0"> logout </td><td class="col1"> $$u </td><td class="col2"> :logout </td>
|
||||
</tr>
|
||||
<tr class="row3">
|
||||
<td class="col0"> TERM=vt52 </td><td class="col1 leftalign"> </td><td class="col2"> :tctyp vt52 </td>
|
||||
</tr>
|
||||
<tr class="row4">
|
||||
<td class="col0"> TERM=vt100 </td><td class="col1 leftalign"> </td><td class="col2"> :crtsty vt100 </td>
|
||||
</tr>
|
||||
<tr class="row5">
|
||||
<td class="col0"> ls </td><td class="col1"> CTRL-F </td><td class="col2"> :listf </td>
|
||||
</tr>
|
||||
<tr class="row6">
|
||||
<td class="col0"> ls dir </td><td class="col1 leftalign"> dir CTRL-F </td><td class="col2"> :listf dir </td>
|
||||
</tr>
|
||||
<tr class="row7">
|
||||
<td class="col0"> ls / </td><td class="col1"> CTRL-R m.f.d. (file) </td><td class="col2"> :print m.f.d. (file) </td>
|
||||
</tr>
|
||||
<tr class="row8">
|
||||
<td class="col0"> ls *.foo </td><td class="col1"> CTRL-R dir: second foo </td><td class="col2"> :print dir: second foo </td>
|
||||
</tr>
|
||||
<tr class="row9">
|
||||
<td class="col0"> more file </td><td class="col1"> CTRL-R file </td><td class="col2"> :print file </td>
|
||||
</tr>
|
||||
<tr class="row10">
|
||||
<td class="col0"> mkdir dir </td><td class="col1"> CTRL-R dir;..new. (udir) </td><td class="col2"> :print dir;..new. (udir) </td>
|
||||
</tr>
|
||||
<tr class="row11">
|
||||
<td class="col0"> cd dir </td><td class="col1"> dir$$CTRL-S </td><td class="col2"> :cwd dir </td>
|
||||
</tr>
|
||||
<tr class="row12">
|
||||
<td class="col0"> cp f1 f2 </td><td class="col1"> $CTRL-R f1,f2 </td><td class="col2"> :copy f1,f2 </td>
|
||||
</tr>
|
||||
<tr class="row13">
|
||||
<td class="col0"> rm file </td><td class="col1"> CTRL-O file </td><td class="col2"> :delete file </td>
|
||||
</tr>
|
||||
<tr class="row14">
|
||||
<td class="col0"> ln f1 f2 </td><td class="col1"> $CTRL-O f1,f2 </td><td class="col2"> :link f1,f2 </td>
|
||||
</tr>
|
||||
<tr class="row15">
|
||||
<td class="col0"> mv f1 f2 </td><td class="col1"> $$CTRL-O f1,f2 </td><td class="col2"> :rename f1,f2 </td>
|
||||
</tr>
|
||||
<tr class="row16">
|
||||
<td class="col0"> mv file dir </td><td class="col1"> :move file,dir </td><td class="col2"></td>
|
||||
</tr>
|
||||
<tr class="row17">
|
||||
<td class="col0"> emacs </td><td class="col1"> emacsCTRL-K </td><td class="col2"> :emacs </td>
|
||||
</tr>
|
||||
<tr class="row18">
|
||||
<td class="col0"> ps </td><td class="col1"> $$v </td><td class="col2"> :listj </td>
|
||||
</tr>
|
||||
<tr class="row19">
|
||||
<td class="col0"> kill pid </td><td class="col1"> pid$CTRL-X </td><td class="col2"> :job pid :kill </td>
|
||||
</tr>
|
||||
<tr class="row20">
|
||||
<td class="col0"> sudo -u u cmd </td><td class="col1"> u$CTRL-S cmd </td><td class="col2"></td>
|
||||
</tr>
|
||||
<tr class="row21">
|
||||
<td class="col0 leftalign"> top </td><td class="col1"> peek CTRL-H </td><td class="col2"> :peek </td>
|
||||
</tr>
|
||||
<tr class="row22">
|
||||
<td class="col0"> CTRL-U </td><td class="col1"> CTRL-D </td><td class="col2"></td>
|
||||
</tr>
|
||||
<tr class="row23">
|
||||
<td class="col0"> CTRL-C </td><td class="col1"> CTRL-G </td><td class="col2"></td>
|
||||
</tr>
|
||||
<tr class="row24">
|
||||
<td class="col0"> CTRL-Z </td><td class="col1"> CTRL-Z </td><td class="col2"></td>
|
||||
</tr>
|
||||
<tr class="row25">
|
||||
<td class="col0"> CTRL-D </td><td class="col1"> CTRL-C </td><td class="col2"></td>
|
||||
</tr>
|
||||
<tr class="row26">
|
||||
<td class="col0 leftalign"> fg </td><td class="col1"> $P </td><td class="col2"> :continue </td>
|
||||
</tr>
|
||||
<tr class="row27">
|
||||
<td class="col0"> bg </td><td class="col1"> CTRL-P </td><td class="col2"> :proceed </td>
|
||||
</tr>
|
||||
</table></div>
|
||||
49
doc/wiki/its_topics
Normal file
49
doc/wiki/its_topics
Normal file
@@ -0,0 +1,49 @@
|
||||
<p>
|
||||
<strong>ITS topics</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
ITS, the Incompatible Timesharing System, was written in 1967 at the MIT AI Lab. It was first running on a PDP-6, but was moved to PDP-10 KA10 processors, in 1975 to a KL10 processor, and finally to KS10 processors. ITS was host to a number of influential programs and technologies: Lisp, Zork, MAZE, Scheme, CLU, Macsyma, SHRDLU, Lisp machines, Logo, Emacs, MacHack VI.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The museum has a real KS10 and an KA10 emulator running ITS.
|
||||
</p>
|
||||
<ul>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_survival_guide" class="wikilink1" title="its_survival_guide">ITS Survival Guide</a>, basic DDT commands.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_user" class="wikilink1" title="its_user">Adding a new ITS user</a></div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_emulators" class="wikilink1" title="its_emulators">Emulators for running ITS</a>, and some of its peripherals.</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_machines" class="wikilink1" title="its_machines">ITS machines throughout history</a></div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_starting_and_stopping" class="wikilink1" title="its_starting_and_stopping">How to start and stop ITS</a></div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_pdp11" class="wikilink1" title="its_pdp11">ITS loves PDP-11 minicomputers</a></div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_managing_tv11" class="wikilink1" title="its_managing_tv11">Managing the TV-11</a></div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_using_gt40" class="wikilink1" title="its_using_gt40">Using the GT40</a> as a Datapoint emulator or gaming machine</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_imlac" class="wikilink1" title="its_imlac">ITS and Imlacs</a></div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_lisp" class="wikilink1" title="its_lisp">PDP-10 Maclisp</a></div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_pdp6_lisp" class="wikilink1" title="its_pdp6_lisp">PDP-6 LISP</a></div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_logo" class="wikilink1" title="its_logo">The Logo programming language</a>, as hosted by ITS</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_console" class="wikilink1" title="its_console">ITS operator console</a></div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=programming_the_pdp-6" class="wikilink1" title="programming_the_pdp-6">Programming the PDP-6</a></div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_music" class="wikilink1" title="its_music">Playing music from ITS</a></div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_games" class="wikilink1" title="its_games">Games on and off ITS</a></div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_ards" class="wikilink1" title="its_ards">ARDS terminals</a></div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> <a href="/doku.php?id=its_hosts" class="wikilink1" title="its_hosts">Updating ITS' host table</a></div>
|
||||
</li>
|
||||
</ul>
|
||||
24
doc/wiki/its_user
Normal file
24
doc/wiki/its_user
Normal file
@@ -0,0 +1,24 @@
|
||||
<h4 id="adding_a_new_its_user">Adding a new ITS user</h4>
|
||||
<div class="level4">
|
||||
|
||||
<p>
|
||||
First of all, for most things ITS will not require a user to be logged in under a name. You can just type ^Z and start working. Some programs do require you to have a user name, and maybe even to have a home directory. However, it <em>is</em> somewhat rude to use ITS anonymously.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To log in and assign a user name, type <code>:LOGIN NAME</code> or <code>NAME$U</code>, where NAME is to be substituted for your user name. Using the winning $U command does have a slight difference: ..CLOBRF and ..MORWARN will be set to 0. Originally, ITS would not ask for a password so there was no protection against logging in as someone else. As more and more Arpanet randoms were seen to hog precious resources, ITS was coerced into adding a password facility.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you don't have a home directory, DDT will complain. This is harmless, but making your own directory is a good idea. To do that, type <code>^R NAME; ..NEW. (UDIR)</code>. DDT will say “no such file”, but the directory will be created. The NAME directory will now be yours by virtue of having the same name as the user name. This need not be the case for all users though; see below.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Having your own home directory is good enough for almost everything you need, but to really make yourself an official ITS user you should register with the INQUIR user database. To do this, type <code>:INQUIR</code> and answer all questions. Finally end with the <code>DONE</code> command.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When you log in, DDT will check the INQUIR database for the name of your home directory. Using this facility, your home directory can have a name different from your user name.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
31
doc/wiki/its_using_gt40
Normal file
31
doc/wiki/its_using_gt40
Normal file
@@ -0,0 +1,31 @@
|
||||
<p>
|
||||
<strong>Using the GT40 with ITS.</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The AI lab had a GT40 attached to terminal line T34. The GT40 is a PDP-11/05 with a VT11 vector display controller, a CRT display, a keyboard, and a light pen. SIMH can emulate a GT40 and attach to a PDP-10 emulator terminal line.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When booted, the GT40 will run from the VT11 ROM. The ROM has very minimal terminal functions: it will display characters received from the PDP-10, and send keyboard key presses to the PDP-10. There are also reset and software upload functions. The ROM software by itself does not provide a usable terminal.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To use the GT40 with ITS, log in with <em>^Z</em> and start <em>GTLOAD</em> to upload software. There is a Datapoint emulator called VT07. When the GTLOAD prompt “*” appears, type the filename <em>GT40;VT07</em> and type enter. The upload will take a long time: one or two minutes. When the terminal emulator starts, it will type out “ITS IN OPERATION” at which point the GT40 can be used much like a Datapoint except it has additional lower case characters.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
VT07 can also accept graphics commands. This facility can be used by Lisp and SUDS.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
There is some other GT40 software. To run something else, restart the GT40 (emulator) and run GTLOAD again.
|
||||
</p>
|
||||
<ul>
|
||||
<li class="level1"><div class="li"> Lunar Lander: GT40;GTLEM BIN</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> Spacewar: GT40;SW BIN</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> CONS console: CONS;CCONS BIN</div>
|
||||
</li>
|
||||
</ul>
|
||||
11
doc/wiki/programming_the_pdp-6
Normal file
11
doc/wiki/programming_the_pdp-6
Normal file
@@ -0,0 +1,11 @@
|
||||
<p>
|
||||
<strong>Programming the PDP-6</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The AI lab PDP-10 shared its memory and I/O buses with a PDP-6. The PDP-6 has 16K of core memory which the PDP-10 can also read and write. The PDP-6 can not see the PDP-10 memory. Both processors can send an interrupt to the other.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For ITS to talk to the PDP-6, the system location PDP6UP must first be set to -1. To access the PDP-6 core memory from ITS, create a job named “PDP6” or “PDP10”. (Historical side note. At first the roles were reversed: the PDP-6 was running ITS and the PDP-10 was the subordinate processor.) This job will have a 16K core image and reads and writes will go directly to the PDP-6 memory. DDT can load a program with $L. It's not possible to start, stop, or set breakpoints. These things will have to be done from the PDP-6 console.
|
||||
</p>
|
||||
Reference in New Issue
Block a user