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
.