PDP-10 / its

Incompatible Timesharing System
Other
842 stars 80 forks source link

SITS - "Small ITS" for Logo 11/45 #1730

Closed larsbrinkhoff closed 5 months ago

larsbrinkhoff commented 4 years ago

SITS directory on AI backup tape from December 1975.

Also:

RJL; SALVD 3
RJL; TECO 9 RJL; TECOIO 19 RUG; AR 613

TINTE editor #1390
LISP11 #1528

SITS; ARC 1 has some applications. MACRO assembler, LINK linker, SHIP maybe Spacewar?

larsbrinkhoff commented 4 years ago

It has DDT and SALV.

larsbrinkhoff commented 4 years ago

AI memo 356 "Logo Progress Report 1973-1975" (subtitle might be "excessive use of XGP fonts")

1.2.1 The SITS Timesharing System

Originally Logo was implemented in assembly language on the PDP-10. In order to provide a computer system dedicated to educational use, it was adapted for the PDP-11. The first milestone in this direction was the completion in 1973-1974 of a dedicated timesharing system running 11LOGO.

The was not an entirely satisfactory solution because of the inability of the system to be self-maintaining or to run other languages or special purpose jobs (like a simulation environment or an educational real-time game). During 1974-1975, our programming staff, under the direction or R. Lebel, completed the design and implementation of a general purpose multi-language timesharing system for the PDP11/45. The SITS timesharing system was developed to provide an environment suitable for running Logo and other PDP11/45 programs. It incorporates a Multics-like tree structured file system including (potentially) full access control. It also provides unique capabilities for running programs as multiple process systems, rather than the more common single process approach, and the ability for each user to run many jobs simultaneously. The system include provisions for using both the older refreshed displays and our new raster displays.

larsbrinkhoff commented 4 years ago

RUG is the exec DDT + DSKDMP tool. Understands the Logo disk format.

larsbrinkhoff commented 4 years ago

@brianharvey wrote in Message-ID: <9f1v00$5o1$1@abbenay.CS.Berkeley.EDU> to comp.lang.logo in 2001:

I know about the BBN work only second-hand. When I met up with Logo it was at the MIT lab that Papert set up post-BBN, running on a PDP-11 under a homebrew operating system called SITS (Small ITS, named after ITS, the homebrew operating system on the AI Lab PDP-10 upstairs.) [...] Anyway, the glory days of the MIT Logo Lab, including that no-statistics proposal we've been discussing on another thread, was built around the PDP-11 Logo implementation. This started before there were microcomputers, let alone Logo for micros. Both the TI-99/4 Logo and the MIT Logo for the Apple (the origin of what's now Terrapin Logo) came out of this group after the early research using the PDP-11. Hal Abelson was, I think, the main person pushing the development of implementations that people outside MIT could actually use (meaning both the TI and the Apple projects).

Brian, FYI we have MIT's BBN-derived PDP-10 Logo in this repository, 11LOGO, the Apple II Logo sources, and possibly SITS some day.

larsbrinkhoff commented 4 years ago

Also in Message-ID: <al5a47$35h$1@abbenay.CS.Berkeley.EDU>

How about the General Turtle 2500 standalone Logo machine?

O, I don't know. I mean this is the first time I hear about a Logo machine. What is the software/OS of this machine? Is it a-la-Logo?

It's a variant of PDP-11 Logo, using the same operating system: SITS (Small Incompatible Timesharing System, named after ITS, the OS used on the MIT AI Lab PDP-10).

larsbrinkhoff commented 4 years ago

@leighklotz, updates about SITS will appear here.

larsbrinkhoff commented 4 years ago

I was thinking, since SITS had raster displays how would the users type input? Then I remembered people talking about a special Logo keyboard which was similar to a Knight keyboard or Space-cadet keyboard. Maybe those were used with the raster displays, much like the AI TV system?

Or else the TV consoles were just output devices, and teletypes were used for input.

larsbrinkhoff commented 4 years ago

I have run SITS' SALV to initialize an empty disk.... I think. Of course, there are no files on it yet.

@leighklotz clued me in on how to get RUG to read a file from disk. Apparently the Logo 11/45 had a note stuck to it: "Alt L Zero Colon Gee, SITS is up!". Testing this, I get:

*$L   0:   G
FILE NOT FOUND?

I read some RUG documentation. It should be possible to read files from paper tape. I think $L P: does this. There's a PUNCH program that runs in ITS to make paper tapes for RUG.

Things that work:

larsbrinkhoff commented 4 years ago

Hello @hqm,

In this GitHub issue I'm making notes on SITS. Do you remember if General Turtle used SITS?

I see a version of 11LOGO mentions a "Little SITS emulator" for the LSI-11. I'm mostly guessing here, but I think it would make sense if the General Turtle 3500 had an LSI-11 and 11LOGO had a SITS emulation layer to run on it.

hqm commented 4 years ago

I do not know what the 3500 used for an OS for its LSI-11. Maybe Brian Silverman or Danny Hillis would remember.

On Mon, Sep 16, 2019 at 8:36 AM Lars Brinkhoff notifications@github.com wrote:

Hello @hqm https://github.com/hqm,

In this GitHub issue I'm making notes on SITS. Do you remember if General Turtle used SITS?

I see a version of 11LOGO mentions a "Little SITS emulator" for the LSI-11. I'm mostly guessing here, but I think it would make sense if the General Turtle 3500 had an LSI-11 and 11LOGO had a SITS emulation layer to run on it.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/1730?email_source=notifications&email_token=AAAAORXAKBTKZCRON34FXJDQJ54VPA5CNFSM4IWI2OH2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6Y7XWI#issuecomment-531758041, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAAORTV5WO2WQVTSFAYAC3QJ54VPANCNFSM4IWI2OHQ .

-- Henry Minsky

larsbrinkhoff commented 4 years ago

Thank you HQM.

larsbrinkhoff commented 4 years ago

Starting SITS from GO, I now get to MEMTST:

GO:     RESET
        MOV #PDL,P      ;SET UP THE PDL
        MOV #RUGVEC,A   ;POINTER TO VECTOR STORAGE
        MOV #BPTBRV,B   ;THE VECOTR
        MOV (B),(A)+    ;THE STUFF
        MOV #BPTBRK,(B)+        ;SET UP OUR VECTOR
        MOV (B),(A)+    ;STORE STATUS
        MOV #340,(B)+   ;SET UP INFINITE PRIORITY
        JSR PC,PARIN    ;INITIALIZE THE PARITY STUFF
        JSR PC,TYINIT   ;INITIALIZE THE TTY'S
        JSR PC,MAPSET   ;SET UP THE INTIAL MAP
        JSR PC,INITTB   ;LINK UP LISTS
        JSR PC,MEMTST   ;SET UP MEMORY TABLES

It crashes when it calls DISALC to allocate a buffer for a TK display.

larsbrinkhoff commented 4 years ago

Later on during initialization, the "system sphere" will be loaded from the disk file ". SYSSPR". The system sphere will print "SITS IS UP!" when it's started. I have not yet got to this point.

larsbrinkhoff commented 4 years ago

Adding more memory and disks, I now get from GO all the way to starting scheduling. I expect I need to figure out how to put files onto the SITS disks now. In particular ". SYSSPR" which is the first program to get loaded.

larsbrinkhoff commented 4 years ago

I think this SALV comment

;WHEN INITING THE MOVING HEAD DISK
;RUG WANTS BLOCKS 0,4-23, AND 54-217 ON DISK 0
;LOGO WANTS 100-1100 FOR SWAPPING ON DISK 1

Translates to a session like this. Not sure how much swap to use, or if a second area is necessary.

SALV 70
*INIT
SURE?Y
FORMAT?N

BASE YEAR:  1974

SWAP AREA 1:  1000-2000

SWAP AREA 2:  

RESERVED:  0

RESERVED:  4-23

RESERVED:  54-217

RESERVED:  
WRITING BLOCK 000050
WRITING BLOCK 000047

DISK NAME:  SITS

WRITING BLOCK 000046
WRITING BLOCK 000045
WRITING BLOCK 000044

*
larsbrinkhoff commented 4 years ago

To make paper tapes for RUG to read, run the PUNCH program in ITS. Type a filename, and proceed from the valrets until EDONE.

To read a paper tape in RUG, type $L P: Continue from the HALTs until the * prompt reappears. Save a core image to disk with $Y 0: FOO

The symbol table is lost.

larsbrinkhoff commented 4 years ago

The SYSJOB is started, but crashes due to making a bad system call (EMT). The system call is $INVOK involving the file ". SYSSPR". The file is there, or at least I can load it from RUG and verify its contents.

larsbrinkhoff commented 4 years ago

Ed Hardebeck wrote:

I remember well that the Logo PDP-11/45 had a Knight-TV system very similar if not identical to the one on MIT-AI (ITS PDP-10). I don't remember the keyboards having colored keys (other than blue and gray), they seemed very similar to the ITS ones. These were the normal-sized ones, not the Lisp-Machine space cadet keyboards with hyper-super etc. They did have a long travel on the keys and really nice action, I think Hall-effect.

larsbrinkhoff commented 4 years ago

I have tried to see what SITS is doing with the ". SYSSPR" file, but I haven't had much luck yet. It seems processing the "." directory is OK, but the "SYSSPR" file is not.

Now I'm making notes about the SITS file system layout, and checking that all of SALV, RUG, and SITS agree on this. I'm making a tool which can examine a SITS disk image file.

A disk is divided into blocks of 1K bytes. The root directory is block 46. A directory is a series of entries:

  1. A length byte which is the length in bytes of this entry.
  2. A flags byte. Some flags are 2 for directory, or 4 for file.
  3. Mumble something access list.
  4. The entry name. ASCII text terminated by 200 set in the last characters.
  5. A descriptor which says where to find the data blocks for this entry.

The root directory should have entries for:

All directories should have entries for their parent directory, and itself. Much like Unix?

The first entry is the self entry. It includes fields for the directory length, and a timestamp. The second entry is for the parent.

larsbrinkhoff commented 4 years ago

There is a disk image in the ITS file 11LOGO; SITS0 DISK from 1978 and it seems to be a fully loaded SITS system.

larsbrinkhoff commented 4 years ago

@hga, I suppose the probability is infinitesimal, but do you by any chance have any recollection of the Logo PDP-11/45 arriving to CCC having a cartoon attached? It would have been a picture of the pope saying something like "Alt L Zero Colon Gee, SITS is up!"

larsbrinkhoff commented 4 years ago

Two interesting pieces of information from hga and #1164, about the Logo 11/45:

I have been looking for Chaosnet support in SITS but haven't found anything yet. So maybe that was a CCC addition when it ran Unix.

lispwright commented 4 years ago

I may very vaguely remember a cartoon on the Logo lab 11/45, but that sort of memorabilia was removed by the lab's people before we salvaged the hardware. SITS was something I printed out and looked at for curiosity, the group of students I gathered didn't have the manpower to take it over, and it was said to had severe limitations like crashing if two people logged in at the same time. The CHAOSNET driver for PDP-11 UNIX came from if my memory is correct Bruce Edwards while he was working at the International Institute for Applied Systems Analysis (IIASA).

larsbrinkhoff commented 4 years ago

Thank you. I'll check with some Logo people if they have the cartoon.

larsbrinkhoff commented 4 years ago

I have been hampered by lack of a good debugging environment. I tried to boot into RUG and have it load and run SITS from disk. First it just crashed. Turns out starting from the start address is wrong; use the 157000 entry point.

Second, loading a program from paper tape would get the core image right but lose the symbol table. When I checked things in RUG, it dutifully loaded the symbol table but no where did it update the pointer to the start of the table. Maybe some kind of bit rot set in? A three-line patch fixed that.

larsbrinkhoff commented 4 years ago

From HENRY; 11LOGO INFO


Procedure for making modifications to the 11Logo system:

The Logo source code is 11LOGO;LOGO >.
To load a new Logo into the 11, bring down the 11 by logging in as SYSKILL.
[Switch 2 on the PDP11 console must be up to allow this.] This will
leave you in RUG. Type the following:
        $L M:11LOGO;LOGO
        $Y 0:NLOGO BIN
        $L 0:SALV
        $G
        G

To install a new version of Logo as the system copy:
        :COPY SLOGO.BIN, OLOGO.BIN
        :COPY NLOGO.BIN, SLOGO.BIN
        $L SLOGO.BIN
        PURIFY$G
        $$Y SLOGO
larsbrinkhoff commented 4 years ago

@foxkit wrote on stackexchange: https://retrocomputing.stackexchange.com/questions/9381/documentation-for-the-mit-pdp-1x-os

The PDP-1x is a Digital Equipment Corporation PDP-1 computer modified to support both ones and twos complement arithmetic, and to include a memory management unit. It ran a locally developed operating system with specific facilities to represent virtualized devices and inter-process communications. The top-level element was called a "Sphere". It contained resources (called capabilities) and execution elements. I believe the execution elements were called "processes".

The sphere and capability concepts seem to be exactly like in SITS.

larsbrinkhoff commented 4 years ago

From PDP35 memo, part 5A, page 9:

A virtual memory space, any virtual processors (processes) that might be executing inside that memory space, plus the list of associated resources (C-list) comprise a sphere.

larsbrinkhoff commented 3 years ago

From tape 3100093, .INFO.; COLORT INFO:


Now bring the 11Logo system back up. Turn off the two switches on
the left side of the disk. Put 157000 into the data
switches on the PDP11, lift the HALT switch, then press LOAD
ADDRESS, then START. The 11 system terminal should then type a star.
Type ^[L on the terminal [^[ is ESC on the keyboard], and it should
type back a few spaces. Then type 0:SITS and a carriage return.
After a few moments it should type back a star, then type ^[G, and
it should eventually say SITS IS UP.
larsbrinkhoff commented 3 years ago

I have found several newer versions of SITS, other than the single 1975 copy. The latest version is from 1979.

lispwright commented 3 years ago

You won't find a later version than 1979, for in January 1980 the machine was taken apart and moved piece by piece to the Concourse Computer Center, to eventually run V7 UNIX after power wiring was in place, it was reassembled, etc.

larsbrinkhoff commented 3 years ago

Thank you, @hga. I believe this is the complete list for now:

File Timestamp
SITS; SITS 136 1979-05-01
SITS; SITS 134 1978-09-14
SITS; SITS 119 1977-11-28
SITS; SITS 118 1977-10-25
SITS; SITS 117 1977-09-11
SITS; SITS 103 1976-11-27
SITS; NSITS 112 1975-12-17
SITS; NSITS 111 1975-12-17
SITS; SITS 1146 1975-10-07
BEE; SITS 456 1974-12-04
BEE; SITS 455 1974-12-04
RJL; SITS 68 1973-11-03
larsbrinkhoff commented 3 years ago

ToTS tape 7005044, JAY; SITS DOC


USING SITS
I. System Console
        A.  start RUG at 157000
if RUG doesn't start...
        1.  halt machine
        2.  load MOVING RUG BOOT paper tape
        3.  load address 177002
        4.  clear switches
        5.  hit START
to load SITS
        B.  <alt>L  0: SITS
        C.  <alt>G
The console should now type out SITS IS UP! along with version numbers and LOGIN:
If, for some reason, you want to get back to RUG, this can be done by...
        A.  Clear all switches
        B.  Switch 15 on
To salvage disks
        A.  Get into RUG
        B.  <alt>L  3: SALV
        C.  <alt>G
After the opening statement (SALV XX), to check a disk type <N>C, where <N> is the
disk number (0-3).
To return to RUG from the SALVAGER, type <cntrl>Z.
To get a fresh copy of RUG while in RUG, type <alt><cntrl>U.

II. User Consoles
        A. Television Displays
                1.  Hit <DO IT> key
                2.  Type LOSER NAME <cr>
        B. Teletypes
                1.  type <cntrl>Z
                2.  type LOSER NAME <cr>

ENTERING A NEW USER ON THE SYSTEM
        1. RUN A DDT
        2. RUN INQUIR  (<ALT>L . INQUIR,OR : . INQUIR)
larsbrinkhoff commented 3 years ago

Apparently the Logo TV keyboards had a "DO IT" key.

larsbrinkhoff commented 3 years ago

@picobrian, up here is the first time I noted something abuot the 2500. It was a Usenet message from @brianharvey. I also logged some progress running SITS.

larsbrinkhoff commented 2 years ago

Files now available courtesy of Ron J. Lebel:
https://github.com/larsbrinkhoff/mit-logo-and-sits-raw-files

larsbrinkhoff commented 1 year ago

Bring-up in progress.

What we see here is a "teletype" connected to one of 16 DH11 ports. I started LOGO and drew some turtle graphics on the "NG" vector display. On the top right is a TV raster display. The emulator is not fully working yet. The bottom right shows the boot dialogue. Screenshot from 2022-10-18 07-43-21

hqm commented 1 year ago

Wow that is quite amazing! I always liked the proportions of the MIT LOGO turtles!

On Tue, Oct 18, 2022 at 1:52 AM Lars Brinkhoff @.***> wrote:

Bring-up in progress. [image: Screenshot from 2022-10-18 07-43-21] https://user-images.githubusercontent.com/775050/196346565-3ca1a6f3-f3c6-44fa-b9ff-acf266c421f3.png

— Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/1730#issuecomment-1281847885, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAAORQ7TS2IDCC7QALKUTTWDY3H7ANCNFSM4IWI2OHQ . You are receiving this because you were mentioned.Message ID: @.***>

-- Henry Minsky

larsbrinkhoff commented 1 year ago

@hga wrote:

[SITS] was said to had severe limitations like crashing if two people logged in at the same time.

I can debunk this rumor. Two or more people can log in at the same time.

However, there is some truth to it. I made an Expect script to log in and recursively list all directories. SITS would regularly hang after listing ten directories or so.

larsbrinkhoff commented 4 months ago

Possibly, SITS reputation for being unstable was a bit unwarranted. Info from @poetnerd:

So the biggest player at CCC was Gill Pratt, who is a bigwhig with Toyota's Robotics group now. I have said, "If a rainy day was a Unibus device, Gill could fix it." We DID get the Logo 11/45, but never ran SITS on it. But we know WHY SITS was so flaky. Eventually Gill found the root cause: A mis-wired FCO that left the high bit of the Floating Point Processor floating. Depending on the incident radio frequency interference, that line might go high and cause an illegal instruction trap, even if there was NO floating point instruction in progress!

hqm commented 4 months ago

aha!

On Fri, Mar 15, 2024 at 4:49 PM Lars Brinkhoff @.***> wrote:

Possibly, SITS reputation for being unstable was a bit unwarranted. Info from @poetnerd https://github.com/poetnerd:

So the biggest player at CCC was Gill Pratt, who is a bigwhig with Toyota's Robotics group now. I have said, "If a rainy day was a Unibus device, Gill could fix it." We DID get the Logo 11/45, but never ran SITS on it. But we know WHY SITS was so flaky. Eventually Gill found the root cause: A mis-wired FCO that left the high bit of the Floating Point Processor floating. Depending on the incident radio frequency interference, that line might go high and cause an illegal instruction trap, even if there was NO floating point instruction in progress!

— Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/1730#issuecomment-2000421536, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAAORTHCWPHSYAOLA2CT7TYYNNF5AVCNFSM4IWI2OH2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMBQGA2DEMJVGM3A . You are receiving this because you were mentioned.Message ID: @.***>

-- Henry Minsky

hqm commented 4 months ago

I forwarded this to Gill Pratt, he replied

Gill Pratt via https://support.google.com/mail/answer/1311182?hl=en mitalumprod.onmicrosoft.com 5:41 PM (22 minutes ago) to Henry, Milan Thanks, Henry. I'm not sure how to reply to this, but could you forward the following:

By chance, I just bought and assembled a PiDP-11 with my 11 year old son and, 40 years later, am fooling around with it running 2.11 BSD (the last OS the Logo 11/45 ran was 2.8 BSD with a driver Pace Willisson wrote for its Knight TV system (Logo edition).

I understand there will be an unveiling of the PiDP-10 April 1 (no fooling) at the MIT Museum, perhaps running ITS? I heard that someone is working on an emulator for the original Knight TV system on the AI-10 (which CCC also eventually inherited).

Gill

On Fri, Mar 15, 2024 at 4:49 PM Lars Brinkhoff @.***> wrote:

Possibly, SITS reputation for being unstable was a bit unwarranted. Info from @poetnerd https://github.com/poetnerd:

So the biggest player at CCC was Gill Pratt, who is a bigwhig with Toyota's Robotics group now. I have said, "If a rainy day was a Unibus device, Gill could fix it." We DID get the Logo 11/45, but never ran SITS on it. But we know WHY SITS was so flaky. Eventually Gill found the root cause: A mis-wired FCO that left the high bit of the Floating Point Processor floating. Depending on the incident radio frequency interference, that line might go high and cause an illegal instruction trap, even if there was NO floating point instruction in progress!

— Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/1730#issuecomment-2000421536, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAAORTHCWPHSYAOLA2CT7TYYNNF5AVCNFSM4IWI2OH2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMBQGA2DEMJVGM3A . You are receiving this because you were mentioned.Message ID: @.***>

-- Henry Minsky

gillpratt commented 4 months ago

And now I'm here. Thanks to everyone for all of this great work !

I am presently in touch with CCC alum, one of whom (Bob Powell) may have a copy of the the KTV driver we wrote for the Logo 11/45 (it eventually ran 2.8 BSD).

It was not color. It used 32KBytes of 1103-based DRAM per screen, and there were 4 screens. The Logo version did not have a video switch, unlike the AI-10 KTV system.

The monitors were green phosphor. My recollection is the sides were fake wood paneling, unlike the AI KTV monitors, which were in blue aluminum cases or naked.

The keyboards indeed had long travel cherry switches (I believe hall effect). I think similar to the AI-10 KTV keyboards.

Let me know of any other questions - I can querey the other CCC alum.

Best,

Gill

larsbrinkhoff commented 4 months ago

Hello @gillpratt, glad to have you here! And thanks @hqm for forwarding.

That's great news about the 2.8BSD TV driver! I'd love to see it. I added support for the Logo TV system to the SIMH PDP-11 emulator, and SITS runs fine, so hopefully the 2.8BSD driver would too. Unfortunately the PiDP-11 software has diverged from SIMH, so the TV support is not there (yet).

Here is information about the PiDP-10 "special seminar", and it will indeed run ITS. The Knight TV support is already done an will be demoed. https://pidp.net/images/pidp10/MITM%20ITS%20Workshop%20Flyer.pdf

hqm commented 4 months ago

I have Tom Knight's contact info if you want to invite him to the demo of the PDP 10

On Sat, Mar 16, 2024 at 5:48 AM Lars Brinkhoff @.***> wrote:

Hello @gillpratt https://github.com/gillpratt, glad to have you here! And thanks @hqm https://github.com/hqm for forwarding.

That's great news about the 2.8BSD TV driver! I'd love to see it. I added support for the Logo TV system to the SIMH PDP-11 emulator, and SITS runs fine, so hopefully the 2.8BSD driver would too. Unfortunately the PiDP-11 software has diverged from SIMH, so the TV support is not there (yet).

Here is information about the PiDP-10 "special seminar", and it will indeed run ITS. The Knight TV support is already done an will be demoed. https://pidp.net/images/pidp10/MITM%20ITS%20Workshop%20Flyer.pdf

— Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/1730#issuecomment-2001931622, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAAORXPJONNXMCPEGRFM5DYYQIPZAVCNFSM4IWI2OH2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMBQGE4TGMJWGIZA . You are receiving this because you were mentioned.Message ID: @.***>

-- Henry Minsky