its icon indicating copy to clipboard operation
its copied to clipboard

SITS - "Small ITS" for Logo 11/45

Open larsbrinkhoff opened this issue 4 years ago • 36 comments

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 avatar Sep 12 '19 19:09 larsbrinkhoff

It has DDT and SALV.

larsbrinkhoff avatar Sep 12 '19 21:09 larsbrinkhoff

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 avatar Sep 13 '19 13:09 larsbrinkhoff

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

larsbrinkhoff avatar Sep 13 '19 16:09 larsbrinkhoff

@brianharvey wrote in Message-ID: <[email protected]> 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 avatar Sep 14 '19 10:09 larsbrinkhoff

Also in Message-ID: <[email protected]>

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 avatar Sep 14 '19 10:09 larsbrinkhoff

@leighklotz, updates about SITS will appear here.

larsbrinkhoff avatar Sep 15 '19 06:09 larsbrinkhoff

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 avatar Sep 15 '19 06:09 larsbrinkhoff

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:

  • $Y to dump a core image to a file.
  • ^Q to delete a file.
  • $^D and $^U to dump and load RUG itself to a disk swap area.

larsbrinkhoff avatar Sep 16 '19 10:09 larsbrinkhoff

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.

larsbrinkhoff avatar Sep 16 '19 12:09 larsbrinkhoff

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 [email protected] 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

hqm avatar Sep 16 '19 13:09 hqm

Thank you HQM.

larsbrinkhoff avatar Sep 17 '19 19:09 larsbrinkhoff

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 avatar Sep 17 '19 19:09 larsbrinkhoff

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 avatar Sep 17 '19 20:09 larsbrinkhoff

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 avatar Sep 18 '19 12:09 larsbrinkhoff

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 avatar Sep 18 '19 18:09 larsbrinkhoff

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 avatar Sep 18 '19 18:09 larsbrinkhoff

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 avatar Sep 19 '19 09:09 larsbrinkhoff

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 avatar Sep 20 '19 18:09 larsbrinkhoff

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:

  • The RUG "." directory for system files.
  • The BITS file for block allocations.
  • The DESCR file describing the disk.
  • A DIRID file.

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 avatar Sep 24 '19 08:09 larsbrinkhoff

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 avatar Sep 27 '19 08:09 larsbrinkhoff

@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 avatar Oct 01 '19 11:10 larsbrinkhoff

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

  • "I vaguely remember [the serial number] might have been 413 or 415."
  • "The 11/45 was attached to the MIT Chaosnet"

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.

larsbrinkhoff avatar Oct 01 '19 11:10 larsbrinkhoff

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).

lispwright avatar Oct 01 '19 12:10 lispwright

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

larsbrinkhoff avatar Oct 01 '19 16:10 larsbrinkhoff

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 avatar Oct 09 '19 07:10 larsbrinkhoff

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 avatar Jan 07 '20 14:01 larsbrinkhoff

@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 avatar Jan 23 '20 06:01 larsbrinkhoff

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 avatar Jan 23 '20 11:01 larsbrinkhoff

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 avatar Aug 02 '20 20:08 larsbrinkhoff

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

larsbrinkhoff avatar Aug 02 '20 20:08 larsbrinkhoff