TSS/8

TSS/8 fue un sistema operativo de tiempo compartido para la DEC PDP-8 disenado originalmente por Adrian van de Goor, estudiante graduado de Cornell Mellon University y luego mejorado y comercializado como sistema completo por DEC a partir de 1968. Originalmente requeria una PDP-8, 8I u 8E con una interfaz paralela RP08 o DF32 asociada a al menos una unidad de cinta RS08 o de disco DS32 para tareas de intercambio y para almacenamiento.

Tutorial de TSS-8 en la DEC PDP-8

Este fichero documenta el uso de https://tss8.sdf.org

Cada usuario tendra acceso a una PDP-8 virtual con 4KW de memoria, y un directorio en disco para almacenamiento de archivos.

Iniciar sesion

Conectese mediante el comando:

    ssh tss8@sdf.org

El sistema remoto respondera:

Welcome to TSS-8!

When you type a LOGIN command, the text will not be displayed.
To login type:  LOGIN 20,3 TSS8

There are limited port connections, so the system may be busy.  If so,
please try back later.

See https://wiki.sdf.org for a user command cheat sheet.

Connected to the PDP-8 simulator TTIX device, line 3

Luego de conectarse a la PDP-8, se encontrara en el prompt de login .. La sintaxis del comando es:

LOGIN <PPN> <CONTRASENA>

Para ingresar a TSS/8 introduce el PPN y la Contrasena adecuada. Por ejemplo:

    LOGIN 20,3 TSS8

...o bien puede ingresar a una puerta trasera subrepticia con:

    LOGIN 1,50 JERK

Nada de lo tipeado en la rutina de LOGIN presentara eco en la terminal. Si lo hace, significa que se ha conectado a una sesion que no ha sido abandonada adecuadamente. En tal caso tipee "LOGOUT" para abandonar la sesion remota e intente conectarse nuevamente.

Al iniciar la sesion de usuario, el sistema devolvera:

TSS/8.24  JOB 01  [01,10]  K00    12:12:36

SYSTEM IS DOWN, INC.

Abandonar la sesion

Es importante abandonar sesion antes de desconectar la terminal, ya que el sistema no lo quitara automaticamente de los usuarios conectados. Para ello utiliza los comandos LOGOUT o KJOB, que te permitiran abandonar la sesion de TSS/8.

Como atajo de estos comandos puedes usar Ctrl+k.

Si por alguna razon parece estar detenido, intente ^BS o Ctrl+b,s. Se ofrecen mas adelante mayores detalles sobre lo que hace Ctrl+b en la seccion Detener un programa en Ejecucion.

Ejecutar programas

Utiliza el listador primitivo, CAT ("catalogo")

Para ejecutar un programa desde el catalogo de disco o desde su directorio puede lograrse mediante el comando "RUN" ("correr"), con la letra R:

    R CAT

...correra el programa CATALOG, presentando los contenidos de su directorio. Los programas actualmente disponibles en la libreria del sistema son:

DISK FILES FOR USER  0, 2 ON 19-DEC-79

NAME      SIZE  PROT    DATE
PALD  .SAV  16   12  31-MAR-76      - Ensamblador de PAL
LOADER.SAV   4   12  31-MAR-76      - Cargador de binarios
FORT  .SAV   6   12  31-MAR-76      - FORTRAN II
FOSL  .SAV   6   12  31-MAR-76      - Sistema FORTRAN
PIP   .SAV  10   12  31-MAR-76      - Programa de Intercambio de perifericos
SYSTAT.SAV   5   12  31-MAR-76      - Presenta status de sistema
EDIT  .SAV   8   12  31-MAR-76      - Editor de texto orientado a lineas.
FOCAL .SAV  16   12  31-MAR-76      - Interprete de lenguaje FOCAL
BASIC .SAV  38   12  31-MAR-76      - Interprete de lenguaje BASIC
CAT   .SAV   6   12  31-MAR-76      - Catalogo de disco
PUTR  .SAV  21   12   3-FEB-84      - Utilidad de Transferencia de ficheros
ODTHI .SAV   2   12  29-FEB-84      - Depurador ODT
FLAP  .SAV   1   12   7-APR-84      - Ensamblador Absolute
PTLOAD.SAV   1   12  29-APR-84      - Cargador de cinta de papel perforado
CHESS .SAV  17   12  11-NOV-74      - Programa de ajedrez CHEKMO II
ALGOL .SAV  32   12  21-NOV-79      - TSS/8 ALGOL (DECUS 8-330)
ACTUNG.SAV   5   12  21-NOV-79      - Presenta un lindo mensaje

El Monitor de TSS/8 dispone de una biblioteca de ficheros en disco para cada usuario. El programa CAT de la Liberaria de Sistema se usa para obtener un listado de catalogo que detalla los contenidos de esta biblioteca. CAT presenta el tamano de cada Fichero en unidades de segmentos de disco. El tamano de los segmentos de disco pueden variar entre las diferentes instalaciones. Generalmente, es de 256 Words decimanles de almacenamiento de disco. Tambien mostrara el codigo de proteccion para el archivo. (Ver la seccion del comando PROTECT del Monitor (Capitulo 9 del Manual) para una explicacion concisa de los codigos de proteccion). Si el programa fue creado por cualquiera de los Programas de la Biblioteca de Sistema, tendra un codigo de proteccion de 12, lo que singifica que otros usuarios pueden leer el Fichero, pero solo su poseedor puede modificarlo.

Cuando el ADMINISTRADOR DE SISTEMA (usuario 1) corre el programa CAT, este presentara la informacion de conteo. Este reporte consiste en el tiempo de computo acumulado (en horas, minutos y segundos) de uso de la CPU, tiempo de conexion, asi como la cantidad de segmentos de disco en uso actualmente.

Para ver los contenidos de la biblioteca de usuarios, corra el programa

.R CAT:L

Esto le solicitara un numero de cuenta, tras lo cual presentara el directorio de usuarios. De esta manera puede rastrear que usuarios estan haciendo uso anormal de espacio de disco.

Si inicia sesion como el usuario 2, podra ejecutar el siguiente comando para ver los contenidos del disco:

    .R CAT

Salida:

DISK FILES FOR USER  0, 2 ON  1-JAN-75

NAME      SIZE  PROT    DATE
PALD  .SAV  16   12  31-MAR-76
LOADER.SAV   4   12  31-MAR-76
FORT  .SAV   6   12  31-MAR-76
FOSL  .SAV   6   12  31-MAR-76
PIP   .SAV  10   12  31-MAR-76
TSTLPT.SAV   2   12  31-MAR-76
LOGOUT.SAV   6   12  31-MAR-76
SYSTAT.SAV   5   12  31-MAR-76
EDIT  .SAV   8   12  31-MAR-76
FOCAL .SAV  16   12  31-MAR-76
BASIC .SAV  38   12  31-MAR-76
COPY  .SAV  10   12  31-MAR-76
CAT   .SAV   6   12  31-MAR-76
GRIPE .SAV   5   12  31-MAR-76
LOGID .SAV   4   12  31-MAR-76
PUTR  .SAV  21   12   3-FEB-84
ODTHI .SAV   2   12  29-FEB-84
FLAP  .SAV   1   12   7-APR-84
PTLOAD.SAV   1   12  29-APR-84
BLANK .SAV   1   12   9-JUN-84
DTTEST.SAV   2   12  26-JUN-84
INIT  .SAV  17   12  29-JUL-84
BAS000.TMP   1   17   1-JAN-84
BAS100.TMP   1   17   1-JAN-84
INTER .BAS   1   12   1-JAN-75
REMY  .ASC   1   12   1-JAN-75

TOTAL DISK SEGMENTS:  189    QUOTA: 1575

Detener un programa en ejecucion

Presiona Ctrl+b para enviar una interrupcion de ejecucion al Monitor. Cuando lo haga, la siguiente entrada que envie al Monitor sera ejecutada.

Para detener cualquier programa mientras esta corriendo, ingrese Ctrl+b,s seguido de Retorno de Carro (tecla Intro). S es el atajo del comando STOP ("detener") del Monitor, lo que provocara que el programa en ejecucion se detenga, pasando a segundo plano.

Podra reiniciar la ejecucion del programa desde el Monitor con el comando START.

PUTR

El programa PUTR ejecuta un subsistema de control que puede utilizar para hacer frente a cuatro tareas de almacenamiento. El subsistema "Peripheral Utility Transfer Routines" PUTR contiene los comandos necesarios para copiar (COPY) hacer un directorio (DIR), borrar (DEL) y presentar en pantalla (TYPE).

Ejecuta el subsistema PUTR ingresando:

.R PUTR

El prompt sera un *.

Lista el directorio:

*DIR

BOTTLE.BAS   1  3/14/74
17OCT .BAS   2  3/14/74
HOLA  .ASC   1  3/14/74
2.25,2.FCL   2  3/14/74
COWGEN.FCL   2  3/14/74
FIBCOW.BAS   1  3/14/74
GUESS .BAS   1  3/15/74
ADIEU .BAC   1  3/15/74
TH    .BAS   1  3/15/74
SCOUNT.ASC   2  3/18/74
SXMPL .ASC   2  3/18/74
SACTST.ASC   1  3/18/74
COUNT .BIN   1  3/18/74
EXAMPL.BIN   1  3/18/74
SPOLY .ASC   3  3/18/74
MISS  .BAS   1  3/18/74
RPS   .BAS   4  3/18/74
TMP   .ASC   1  3/18/74
BAFFA2.      1  3/18/74
BAFFA1.ASC   1  3/18/74
ZMP   .ASC   1  3/18/74
SPOLY2.ASC   3  3/18/74
POLY2 .BIN   1  3/18/74
SBLINK.ASC   1  3/18/74
BAFFA3.ASC   1  3/19/74
BAFFA4.ASC   1  3/19/74
BAFFA5.ASC   2  3/19/74
BBIN  .BIN   1  3/19/74
BAFFA6.ASC   1  3/19/74
RUL110.BAS   1  3/25/74
ELCOTT.BAS   1  3/25/74
HELLO .BAS   1  3/26/74
EINTR .BAS   1  3/26/74
ELCOT1.BAS   1  3/26/74
AGE   .BAS   2  3/26/74
PAPA  .ASC   1  3/26/74

Revisa los contenidos de uno de los ficheros fichero

*TYPE PERON.ASC

A LOS MUCHACHOS LES GUSTA PONERSE CALIFICATIVOS
LOS HAY ORTODOXOS, LOS HAY HETERODOXOS
LOS HAY COMBATIVOS, LOS HA CONTEMPLATIVOS
PERO TODOS TRABAJAN.

Copia un fichero en otro:

*COPY PERON.ASC=MUCHA.ASC

Borra un fichero:

*DEL MUCHA.ASC

Sal del subsistema PUTR para volver al Monitor TSS/8.

*E

^BS

Status del sistema TSS/8

Con frecuencia es util conocer el status de TSS/8: cuantos usuarios hay en linea, donde estan, que estan haciendo, etcetera. El programa SYSTAR ofrece esta funcionalidad.

SYSTAT

Devolvera una impresion completa de lo que esta haciendo el sistema, quien esta conectado y mucha informacion adicional:

STATUS OF TSS/8.24 DEC PDP-8 #1 AT 12:19:14 ON  1 JAN 75

UPTIME 00:07:14

JOB      WHO     WHERE      WHAT       STATUS     RUNTIME

 1      0, 2      K00      FOCAL      ^BS   ^Q    00:00:01
 2      1,50      K01      SYSTAT     RUN   ^Q    00:00:00

AVAILABLE CORE 16K   FREE CORE=312

BUSY DEVICES    NONE

 103 FREE DISK SEGMENTS

En el ejemplo se indican dos usuarios conectados; usuario 2 en la terminal teletipo 0, y el usuario 50 en la teletipo 1. El usuario 2 corria FOCAL pero ahora se encuentra en el prompt (STATUS ^BS significa modo Monitor, ese es el prompt). El Usuario 50 esta ejecutando el comando SYSTAT.

SYSTAT responde imprimiendo en la primera linea la version del interprete de comandos TSS/8 Moniitor que este corriendo, la fecha y la hora. SYSTAT reporta el tiempo de encendido que es la duracion en horas, minutos y segundos desde que el sistema fue puesto en linea.

SYSTAT lista todos los usuarios en linea. Cada usuario sera identificado por su numero de cuenta. El numero de trabajo asignado a el y el numero de consola que esta empleando tambien se indican, asi como el Programa de Sistema particular que este corriendo. El estado de ejecucion actual de cada usuario tambien se indica, tanto si esta actualmente ejecutando un programa (RUN), tipeando en su terminal (KEY) o desconectado (TTY), si esta realizado Entrada/Salida a otro dispositivo de sistema (IO o RIP), o si no esta ejecutando (iB).

Se presenta al cantidad de tiempo de computadora utilizado por cada usuario desde que se ha conectado.

Si se conectan en linea mas cantidad de usuario que los que podrian debido a los Campos de Nucleo disponibles, se reportara el hecho de que el sistema esta utilizando memoria de intercambio. Se presentara tambien la cantidad de bloques libres de memoria de nucleo usados internamente por el Monitor TSS/8 para el almacenamiento intermedio operativo de las teletipos y varios otros propositos varios.

Luego SYSTAT reportara cualquier dispositivo que no se encuentre disponible. Por ejemplo, los dispositivos que han sido asignados a un usuario individual. El Trabajo al cual estan asociados y su status (por ejemplo, AS si han sido asignados pero no estan activos, AS+INIT si han sido asignados y estan activos)

Finalmente, reporta la cantidad de segmentos de disco disponible para almacenamiento.

Para ver la hora en la que se ha conectado ingrese:

    .TIME

00:00:20

Para ver la hora del sistema:

    .TIME 0

12:20:44

El manual contiene mayor informacion sobre SYSTAT, listada aqui para mayor conveniencia.

Chatear con otros Usuarios

El programa TALK puede usarse para enviar mensajes a otras terminales. Use primero SYSTAT para ver que otros usuarios estan conectados al sistema, por ejemplo:

    .SYSTAT

STATUS OF TSS/8.24 DEC PDP-8 #1 AT 12:47:30 ON 19 DEC 79

UPTIME 19:06:31

JOB      WHO     WHERE      WHAT       STATUS     RUNTIME

 1     10, 0      K00      BASIC      KEY   ^Q    00:00:04
 2     10, 0      K01      SYSTAT     ^BS   ^Q    00:00:00
 4     10, 0      K04      HI         ^BS   ^Q    00:00:00
 5      0, 2      K06      CAT        ^BS   ^Q    00:00:00
 6      0, 1      K07      SYSTAT     RUN   ^Q    00:00:00

AVAILABLE CORE  4K   FREE CORE=252

BUSY DEVICES    NONE

3269 FREE DISK SEGMENTS

La columna “WHERE” informa a que consola (de la K00 a la K07) esta conectado el usuario. Para enviar un mensaje a una consola especifica, tipee:

TALK <CONSOLE #> <YOUR MESSAGE HERE>

Por ejemplo,

TALK 2 VIVA PERON CARAJO!

...enviara un mensaje amistoso a la consola K02.

BASIC-8

TSS/8 cuenta con una version de BASIC-8. Podras ejecutarlo con:

R BASIC

BASIC-8 te preguntara si deseas escribir un programa nuevo (NEW) o cargar uno ya existente (OLD).

El cualquier momento se puede usar el comando SAVE para guardar el fichero de trabajo, UNSAVE para borrarlo. El comando CATALOG devuelve una lista de los programas en disco.

Podras introducir el listado de BASIC-8, listarlo con LIST, incluso indicando un rango separados por coma. El comando DELETE borrara rangos de lineas de programa, mientras que podras ejecutarlo con RUN y salir del sistema BASIC-8 con BYE.

FOCAL69

Puede iniciar el entorno de programacion FOCAL69 con el comando R FOCAL, cuya salida se presenta a continuacion:

    .R FOCAL

SHALL I RETAIN LOG, EXP, ATN ?:NO

SHALL I RETAIN SINE, COSINE ?:NO

PROCEED.

    *_TYPE "VIVA PERON"

VIVA PERON*

Para salir de FOCAL, presione CTRL+B seguido por la S. Su prompt volvera nuevamente a ser un punto (.):

    *^BS

    .