Difference between revisions of "ITS 138"
(→System calls: Add .UTRAN, fix .GET/SETMSK spelling.) |
(Other PDP-6 listings.) |
||
(15 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[Image:ITS-138-cover-page.jpg|thumb|right|400px|ITS 138 front page]] | [[Image:ITS-138-cover-page.jpg|thumb|right|400px|ITS 138 front page]] | ||
− | Gerald Sussman has preserved a listing of [[Incompatible Timesharing System|ITS]] version 138 from | + | Gerald Sussman has preserved a listing of [[Incompatible Timesharing System|ITS]] version 138, most likely from 1967. It was mentioned in Grant Fjermedal's 1986 book "The Tomorrow Makers". In 2023, MIT Museum staff began processing the listing, and volunteers transcribed it to machine readable files. The TITLE statement on the first line says "ITS 1.0 3/19/67", but there is reason to believe the date has not been kept current with edits. |
The format of the listing is in the output of some cross reference tool. Each line is prefixed with a line number and a symbol reference. The last three pages are a table which lists all symbols and where they are defined. | The format of the listing is in the output of some cross reference tool. Each line is prefixed with a line number and a symbol reference. The last three pages are a table which lists all symbols and where they are defined. | ||
+ | |||
+ | [[Image:ITS138-is-alive.png|thumb|right|400px|ITS 138 running @ HACTRN on a PDP-6 emulator, displaying on a GE DATANET-760 terminal emulator.]] | ||
==Supported hardware== | ==Supported hardware== | ||
− | * Modified TTY device that handles four more teletypes, as per [ | + | [[Image:GE-console-at-AI-lab.png|thumb|right|400px|ITS 138 supported for its time advanced CRT terminals called "GE consoles".]] |
− | * Four GE Datanet 760 CRT consoles, present already in July/September 1967 per [https://apps.dtic.mil/sti/pdfs/AD0681342.pdf Project MAC Progress Report IV]. | + | |
− | * The second generation vidissector, "TVB". Mentioned in [https://dspace.mit.edu/handle/1721.1/5882 AI memo 113]. | + | * Modified TTY device that handles four more teletypes, as per [[MIT AI memo 105]]. Interestingly, this was done already in August 1966. |
+ | * Four [[MIT AI lab IO bus interface for GE Datanet 760|GE Datanet 760 CRT consoles]], present already in July/September 1967 per [https://apps.dtic.mil/sti/pdfs/AD0681342.pdf Project MAC Progress Report IV]. | ||
+ | * The second generation vidissector, "TVB". Mentioned in [https://dspace.mit.edu/handle/1721.1/5882 AI memo 113]. The input is slaved to the Type 340 deflectors. | ||
* 16K core, or (preferably) [[Fabritek Core Memory|256K moby core memory from Fabri-Tek]]. The latter was installed in 1966, but took almost a year to be fully operational. | * 16K core, or (preferably) [[Fabritek Core Memory|256K moby core memory from Fabri-Tek]]. The latter was installed in 1966, but took almost a year to be fully operational. | ||
* DEC Type 555 "[[DECtape|microtapes]]" with data channel. | * DEC Type 555 "[[DECtape|microtapes]]" with data channel. | ||
* DEC Type 340 display. | * DEC Type 340 display. | ||
* Line printer. | * Line printer. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Source code walkthrough== | ==Source code walkthrough== | ||
Line 61: | Line 34: | ||
| 10 || [[PCLSRing|PC "losering"]] | | 10 || [[PCLSRing|PC "losering"]] | ||
|- | |- | ||
− | | 11- | + | | 11-16 || Job switching and starting. |
+ | |- | ||
+ | | 17-18 || Wait for event. | ||
|- | |- | ||
− | | | + | | 19-23 || UUO handling; system calls and user calls. |
+ | |- | ||
+ | | 24-48 || Implementation of most system calls. | ||
+ | |- | ||
+ | | 49 || Vidissector I/O. | ||
+ | |- | ||
+ | | 50-51 || Memory allocation. | ||
+ | |- | ||
+ | | 52 || NUL device I/O. | ||
+ | |- | ||
+ | | 53-57 || USR job device I/O. | ||
+ | |- | ||
+ | | 58-59 || Line printer I/O. | ||
+ | |- | ||
+ | | 60-69 || Teletype I/O. | ||
+ | |- | ||
+ | | 70-82 || GE console I/O. | ||
+ | |- | ||
+ | | 83-115 || Microtape I/O. | ||
|- | |- | ||
| 116 || The system core job. | | 116 || The system core job. | ||
Line 69: | Line 62: | ||
| 117-118 || Various variables and END statement. | | 117-118 || Various variables and END statement. | ||
|} | |} | ||
+ | |||
+ | ==System calls== | ||
+ | |||
+ | These are the UUO calls defined on page 19. Note how the symbols do not have the <code>.</code> prefix here. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | | 040 || IOT || || CALL 1, || DISMIS || || OPER 1 || ITYI | ||
+ | |- | ||
+ | | 041 || OPEN || || CALL 2, || TRAND || || OPER 2 || LISTEN | ||
+ | |- | ||
+ | | 042 || OPER || || CALL 3, || TRANAD || || OPER 3 || SLEEP | ||
+ | |- | ||
+ | | 043 || CALL || || CALL 4, || VALRET || || OPER 4 || SETMSK | ||
+ | |- | ||
+ | | 044 || USET || || CALL 5, || UTRAN || || OPER 5 || GETMSK | ||
+ | |- | ||
+ | | 045 || BREAK || || CALL 6, || CORE || || OPER 6 || LOGIN | ||
+ | |- | ||
+ | | colspan="3" | || CALL 7, || TRNDL || || OPER 7 || CLOSE | ||
+ | |- | ||
+ | | colspan="3" | || CALL 10, || DSTART || || OPER 10 || UFLUSH | ||
+ | |- | ||
+ | | colspan="3" | || CALL 11, || FDELE || || OPER 11 || ATTY | ||
+ | |- | ||
+ | | colspan="6" | || OPER 12 || GBLTTY | ||
+ | |- | ||
+ | | colspan="6" | || OPER 13 || IPUSH | ||
+ | |- | ||
+ | | colspan="6" | || OPER 14 || IPOP | ||
+ | |- | ||
+ | | colspan="6" | || OPER 15 || DFLUSH | ||
+ | |- | ||
+ | | colspan="6" | || OPER 16 || DSTOP | ||
+ | |- | ||
+ | | colspan="6" | || OPER 17 || RDTIME | ||
+ | |- | ||
+ | | colspan="6" | || OPER 20 || RDSW | ||
+ | |- | ||
+ | | colspan="6" | || OPER 21 || LPEN | ||
+ | |- | ||
+ | | colspan="6" | || OPER 22 || UDISMT | ||
+ | |} | ||
+ | |||
+ | ==Other listings== | ||
+ | |||
+ | Other related listings found in Sussman's desk drawer: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! File name || Device || User || Directory || Date || Comment | ||
+ | |- | ||
+ | | C LAP || LS || - || - || - || Lisp assembler, source and compiled code | ||
+ | |- | ||
+ | | LISP DDT? || LS || - || - || - || | ||
+ | |- | ||
+ | | LISP C52 || GS9 || GJS || - || - || Lisp compiler | ||
+ | |- | ||
+ | | OLT2 DEC2 || DS3 || GJS || - || 16:32:57 MARCH 12,1968 || | ||
+ | |- | ||
+ | | TECO DOC || HT2 || WD || - || 13:11:33 MARCH 13,1968 || Documents the editor | ||
+ | |- | ||
+ | | LISP TECOSM || GS7 || GJS || - || 16:40:30 APRIL 25,1968 || Editor for Lisp code | ||
+ | |- | ||
+ | | EDDT C3 || GS7 || P || - || 10:57:28 AUG 16,1968 || | ||
+ | |- | ||
+ | | TECO 132 || DSK || SYSENG || SYSENG || 01:26:31 JAN 22,1969 || TECO source code | ||
+ | |- | ||
+ | | LISP 97 || DSK || LISP || LISP || 08:50:47 FEB 02,1969 || Maclisp interpreter and runtime | ||
+ | |- | ||
+ | | - || - || - || - || - || PROG DO READ FOR LISP 97 | ||
+ | |} | ||
+ | |||
+ | ==See also== | ||
+ | |||
+ | * [[MIT AI memo 105]] | ||
+ | * [[MIT AI lab IO bus interface for GE Datanet 760]] | ||
==External links== | ==External links== | ||
Line 74: | Line 142: | ||
* [https://github.com/PDP-6/ITS-138 GitHub repository with ITS 138 page photos and transcribed text]. | * [https://github.com/PDP-6/ITS-138 GitHub repository with ITS 138 page photos and transcribed text]. | ||
* [https://dspace.mit.edu/handle/1721.1/6085 ITS 1.4 Reference Manual], is close in time to ITS 138. | * [https://dspace.mit.edu/handle/1721.1/6085 ITS 1.4 Reference Manual], is close in time to ITS 138. | ||
+ | |||
+ | [[Category: PDP-10 Operating Systems]] | ||
+ | [[Category: Non-DEC Operating Systems]] |
Latest revision as of 07:28, 19 January 2024
Gerald Sussman has preserved a listing of ITS version 138, most likely from 1967. It was mentioned in Grant Fjermedal's 1986 book "The Tomorrow Makers". In 2023, MIT Museum staff began processing the listing, and volunteers transcribed it to machine readable files. The TITLE statement on the first line says "ITS 1.0 3/19/67", but there is reason to believe the date has not been kept current with edits.
The format of the listing is in the output of some cross reference tool. Each line is prefixed with a line number and a symbol reference. The last three pages are a table which lists all symbols and where they are defined.
Contents
Supported hardware
- Modified TTY device that handles four more teletypes, as per MIT AI memo 105. Interestingly, this was done already in August 1966.
- Four GE Datanet 760 CRT consoles, present already in July/September 1967 per Project MAC Progress Report IV.
- The second generation vidissector, "TVB". Mentioned in AI memo 113. The input is slaved to the Type 340 deflectors.
- 16K core, or (preferably) 256K moby core memory from Fabri-Tek. The latter was installed in 1966, but took almost a year to be fully operational.
- DEC Type 555 "microtapes" with data channel.
- DEC Type 340 display.
- Line printer.
Source code walkthrough
Page | Description |
---|---|
1-3 | Basic definitions, accumulators, PI channel assignments, etc. |
4 | "GO" entry point, initialization. Jumps to the core job. |
5-7 | Handlers for clock, parity error, and other processor interrupts. |
8-9 | Job scheduling. |
10 | PC "losering" |
11-16 | Job switching and starting. |
17-18 | Wait for event. |
19-23 | UUO handling; system calls and user calls. |
24-48 | Implementation of most system calls. |
49 | Vidissector I/O. |
50-51 | Memory allocation. |
52 | NUL device I/O. |
53-57 | USR job device I/O. |
58-59 | Line printer I/O. |
60-69 | Teletype I/O. |
70-82 | GE console I/O. |
83-115 | Microtape I/O. |
116 | The system core job. |
117-118 | Various variables and END statement. |
System calls
These are the UUO calls defined on page 19. Note how the symbols do not have the .
prefix here.
040 | IOT | CALL 1, | DISMIS | OPER 1 | ITYI | ||
041 | OPEN | CALL 2, | TRAND | OPER 2 | LISTEN | ||
042 | OPER | CALL 3, | TRANAD | OPER 3 | SLEEP | ||
043 | CALL | CALL 4, | VALRET | OPER 4 | SETMSK | ||
044 | USET | CALL 5, | UTRAN | OPER 5 | GETMSK | ||
045 | BREAK | CALL 6, | CORE | OPER 6 | LOGIN | ||
CALL 7, | TRNDL | OPER 7 | CLOSE | ||||
CALL 10, | DSTART | OPER 10 | UFLUSH | ||||
CALL 11, | FDELE | OPER 11 | ATTY | ||||
OPER 12 | GBLTTY | ||||||
OPER 13 | IPUSH | ||||||
OPER 14 | IPOP | ||||||
OPER 15 | DFLUSH | ||||||
OPER 16 | DSTOP | ||||||
OPER 17 | RDTIME | ||||||
OPER 20 | RDSW | ||||||
OPER 21 | LPEN | ||||||
OPER 22 | UDISMT |
Other listings
Other related listings found in Sussman's desk drawer:
File name | Device | User | Directory | Date | Comment |
---|---|---|---|---|---|
C LAP | LS | - | - | - | Lisp assembler, source and compiled code |
LISP DDT? | LS | - | - | - | |
LISP C52 | GS9 | GJS | - | - | Lisp compiler |
OLT2 DEC2 | DS3 | GJS | - | 16:32:57 MARCH 12,1968 | |
TECO DOC | HT2 | WD | - | 13:11:33 MARCH 13,1968 | Documents the editor |
LISP TECOSM | GS7 | GJS | - | 16:40:30 APRIL 25,1968 | Editor for Lisp code |
EDDT C3 | GS7 | P | - | 10:57:28 AUG 16,1968 | |
TECO 132 | DSK | SYSENG | SYSENG | 01:26:31 JAN 22,1969 | TECO source code |
LISP 97 | DSK | LISP | LISP | 08:50:47 FEB 02,1969 | Maclisp interpreter and runtime |
- | - | - | - | - | PROG DO READ FOR LISP 97 |
See also
External links
- GitHub repository with ITS 138 page photos and transcribed text.
- ITS 1.4 Reference Manual, is close in time to ITS 138.