tutorial_de_tops-20_en_twenex.org

¡Esta es una revisión vieja del documento!


Tutorial de TWENEX

Este tutorial representa actividades para conocer y utilizar el sistema operativo de tiempo compartido TOPS-20, a través de las facilidades de cómputo remoto ofrecido por el Proyecto TWENBX.ORG.

Proyecto TWENEX.ORG

TWENEX.org forma parte del clúster de cómputo y acceso público sdf.org. En 1994 esta organización sin fines de lucro comenzó gestiones tendientes a contar con una distribución de TOPS-20 como alternativa a UNIX.

Si bien durante un breve tiempo operó un DEC PDP-10 DECSystem-2065, el elevado costo de puesta en línea hizo necesario su reemplazo por un sistema KLH-10 apodada “BJORK” munido con la distribución “PANDA”. De estas existían dos instancias apodadas KANKAN y RINRIN (en honor a osos pandas del Zoológico de Ueno, Japón).

Actualmente un renovado servidor XKL TOAD-2 dedicado, utilizado como veloz clon de PDP-10 hace renacer al Proyecto TWENEX, ya que la TOAD-2 ha sido puesto a disposición específicamente para el sistema por amabilidad de la compañía que las produce. Nace así la Bootcamp de TOPS-20, una serie de clases remotas instructivas en inglés provistas por el usuario experto smj, y disponibles en video.

se puede acceder como usuario invitado desde Linux utilizando Shell Seguro (SSH), mediante:

ssh twenex@sdf.org

Al establecerse en enlace se presentará la pantalla de registro en la máquina TOAD-2 “KANKAN” de TWENEX.ORG:

 Trying 172.16.36.36...
Connected to KANKAN.
Escape character is 'off'.

 TWENEX.ORG XKL Toad-2 running TOPS-20, TOPS-20 Monitor 7(63327)-6

Welcome to the all new TWENEX.ORG running on an XKL Toad-2!
If NEW, login 'NEW NEW' ..
@

No bien recibamos en el terminal el prompt de sistema@”, podrás ingresar como “usuario invitado nuevo”. Para ello introduce NEW seguido de la tecla INTRO. Cuando se te solicite la contraseña (“password?”) ingresa también NEW.

Salir del sistema TWENEX

Podrás abandonar el sistema ingresando en el prompt el comando:

KJOB

Bootcamp de TWENEX.ORG

Se trata de una serie de lecciones de aprendizaje desarrolladas dentro de los sistemas TOPS-20 de TWENEX.ORG. El proyecto cuenta con una con una https://wiki.twenex.org/WIKI contribuida por los usuarios (en inglés).

Podrás seguir estas instrucciones compiladas para tí.

Si cuentas con un usuario de twenex.org podrás realizar las actividades del Bootcamp. Para tal fin solicita la creación de una cuenta de usuario (“LOGIN”) en http://www.twenex.org/mkacct/.

Debes proveer: - un Nombre de Usuario deseado (llamado LOGIN), - una casilla de correo electrónico válida - su nombre completo.

Recibirás un correo electrónico indicando el alta de tu LOGIN, y te será proporcionada una contraseña pasavante.

Ingresa a TWENEX.ORG con:

ssh twenex@sdf.org

Al recibir el prompt @ ingresa tu nombre de LOGIN, presiona la tecla Intro, y cuando se te solicite password? introduce tu contraseña pasavante y presiona la tecla Intro (la contraseña no hará eco en la terminal).

Cambiar la contraseña pasavante

Cuando accedas con tu usuario registrado, deberías cambiar la contraseña pasavante provista por una contraseña propia. En dicha contraseña, TOPS-20 aceptará sólo caracteres alfanuméricos simples (en minúscula, sin espacios, sin letras acentuadas ni eñes).

Para cambiar la contraseña de tu LOGIN utiliza este comando:

SET DIRECTORY PASSWORD <LOGIN>

…donde LOGIN debe ser reemplazado por tu nombre de usuario (debes conservar el uso de <>).

Podrás usar KJOB para salir del sistema TWENEX y volver a conectarte con tu contraseña propia.

En TOPS-20 son importantes los caracteres de control para manejar el flujo de datos a tu terminal.

Control Resultado
CTRL-S detiene (pausa) la salida de la terminal.
CTRL-Q continúa con la salida en la terminal.
CTRL-O ignora la salida de la terminal
CTRL-U borra lo ingresado.
CTRL-C sale de un trabajo.
CTRL-F autocompleta (intente <ESC> también)
CTRL-T Presenta el Status del trabajo
CTRL-\ Cuando ejecute el comando 'LOGOUT' use esto para cerrar la sesión TELNET.

El intérpretes de comandos de nivel USER (“usuario”) de TOPS-20 recibe el el nombre de “EXEC”. Por encima del mismo se cuenta con el el nivel ENABLE, pero hablaremos únicamente del nivel USER.

Al iniciar EXEC, este correrá ficheros de autoejecución localizados en el directorio de usuario. El fichero básico es LOGIN.CMD.

El prompt del sistema TWENEX está configurado como:

[KANKAN] PUBLIC:<~>@ 

Los comandos más simples no son interactivos. Veamos algunos:

En TOPS-20 usa el programa TYPE cumple la función del cat de GNU. Presenta en pantalla el fichero LOGIN.CMD ingresando el comando:

TYPE LOGIN.CMD

El contenido de este fichero por lotes de sistema - en el cual el ; sirve para comentar, de la misma forma que se utiliza el # en Unix - podría ser el siguiente:

;
;
;
TERMINAL VT100
TERMINAL LENGTH 24
TERMINAL WIDTH 80
;TERMINAL PAGE ; No pagina automáticamente (hay que paginar con Ctrl+q)
TERM REC LINKS ; Permite a otros usuarios enlazar terminales
DEFINE EDITOR: SYS:EMACS.EXE
SET HISTORY 100
SET COMMAND-EDITOR EDIT EMACS
SET COMMAND-EDITOR ENTER CONTROL "P"
SET PROMPTS "@" "@@" "!" "!!"
daytime
echo Revisando el BBOARD ..
echo
BBOARD                                 ; revisa el BBOARD
ECHO
ECHO HOLA PERON! BIENVENIDO A
type twenex.logo
ECHO
ECHO Ingrese 'HELP NEW-USER' para ver el resumen de comandos
ECHO Ingrese 'HELP GAMES'    para listar los juegos
ECHO Ingrese 'TOPS20'        para activar el tutorial interactivo
ECHO
TAKE

Revisa quién se encuentra conectado al sistema multiusuario TWENEX en este momento mediante el comando:

SYSTAT

TWENEX podría llenar la pantalla de la temrinal con la información solicitada. Al llenar la pantalla, podrías continuar la presentación de más información con Ctrl+q. Este comportamiento es un remanente de la época de las teletipos (donde se imprimía un poco y se podía cancelar la salida). De momento la dejaremos así, luego podremos cambiarla.

Utiliza el comando

DAYTIME

para ver la fecha del Reloj de Tiempo Real (RTC).

Autocompletado con Esc

EXEC cuenta con la función de reconocimiento de Escape. Utilizarás la tecla Escape para autocompletar o presentar convenientes solicitudes (“noise words”) para los comandos parcialmente escritos. En lugar de ingresar el comando largo INFORMATION (ABOUT) MONITOR-STATISTICS, simplemente escribe:

infor ESCAPE mon ESCAPE

…y EXEC completará lo necesario. Cuando lo compruebes, produce la entrada de la orden con la tecla Intro:

[KANKAN] PUBLIC:<~>@ informatION (ABOUT) moniTOR-STATISTICS 
 Up 37:52:07
 Idle 34%  Waiting 0%  Sched ovh 4%  Pager traps 5%
 Swap reads 0 Writes 2983  File reads 53027 Writes 23744
 520126 Pages of user memory
 4835600 Term wakeups  196 Term interrupts
 Runtime of jobs on sched queues 0-6 (sec)
	9957	686	565	379	276	37357	0

Ayuda con ?

Otra opción recordada de EXEC era el operador del signo de interrogación ?. Al presionar la tecla ? (no es necesario oprimir ENTER con ella), EXEC devolverá la ayuda o bien las opciones o sufijos que podrás utilizar para cada comando de TOPS-20 que introduzcas.

Por ejemplo, la opción de largo de la terminal permite identificar el largo de las líneas de la termimal antes de que pause automáticamente. Usualmente estas eran 24 líneas.

terminal (FEATURE OR TYPE) page (MODE) ?

Las palabras entre paréntesis (FEATURE OR TYPE, MODE) eran conocidas como “palabras ruidosas” o más adecuadamente palabras de guía, y se hayan incorporadas en el Shell EXEC para producir su autocompletado presionando la tecla Escape.

Por ejemplo, para el caso anterior, podrás hacerlo escribiendo:

TER [ESCAPE] page [ESCAPE] ?
Recuerda utilizar Ctrl+o para detener la salida a terminal.

Conozcamos ahora un poco el equivalente a carpetas o directorios: la “Estructura” de TOPS-20. Usemos un comando no interactivo para ver cuántas “páginas” (PAGES) de memoria estamos utilizando en nuestro almacenamiento de usuario:

INFORMATION (ABOUT) DISK-USAGE (OR DIRECTORY) <usuario>

En TOPS-20 el directorio se denomina “STRUCTURE” (estructura), y al iniciar sesión en TWENEX seremos localizados del directorio de usuario dentro de la estructura PUBLIC: (PUBLIC:<usuario>).

El sistema de archivos de TOPS-20 suporta versionado de ficheros, y cuenta con dos niveles de borrado de archivos (similar a una “papelera de reciclaje”), funcionalidad de la cual UNIX carece. De esta forma, los nombres de archivo de TOPS-20 cuentan con tres componentes:

NOMBRE.EXTENSIÓN.VERSIÓN

Utiliza el comando DIR para listar directorios, de manera similar al ls de UNIX. También tenemos una opción más completa, VDIR o VDIRECTORY.

DIR

Podrás utilizar comodines * como atajos para abarcar “todo”. Si decides introducir el comando:

@directory PS:<MENGANO>*.*.*

…TWENEX listará todos los archivos, con todas las extensiones, y todas las versiones que se encuentren dentro del directorio de usuario MENGANO. Si sólo le ingresa un *.* y omite el comodín * referido a la versión, entonces EXEC listará únicamente generación más actual de TODOS los archivos.

Si hacemos un listado de la estructura hlp: podremos ver todos los ficheros de ayuda.

V HLP:

   NEO:<HELP>
 -DISCLAIMER..1;P775252     1 188(7)     11-Oct-1995 16:34:37 HELLIWELL 
 1022.HLP.1;P775252         2 4417(7)    20-Jul-1984 23:56:32 HELLIWELL 
 11TAPE.HLP.1;P775252       3 7235(7)    28-Jun-1984 16:09:16 GORIN     
 ACCEPT.CMD.1;P775252       1 788(7)      4-Mar-1982 21:23:00 HELLIWELL 
 ACCESS.HLP.1;P775252       1 939(7)     18-May-1985 17:57:14 HELLIWELL 
 ACTGEN.HLP.1;P775252       1 612(7)     11-Aug-1977 19:44:36 HELLIWELL 
 ADDING-A-NEW-ACCOUNT.HLP.1;P775252   1 1348(7) 18-Oct-1995 19:51:32 HELLIWELL 
 ADVISE.HLP.2;P775252       1 1105(7)    16-May-1990 02:25:37 THEKID    
 AID.HLP.1;P775252          1 2268(7)    22-Jun-1979 05:25:42 .MRC      
....

También podremos activar las opciones de los comandos introduciendo ,.

Por ejemplo,

DIR,

…nos mostrará un prompt adicional de @@, en el que podremos ingresar ? para ver qué sufijos puede tener el comando DIRECTORY. Podríamos activar o desactivar las opciones deseadas, y dsrle una salida a un fichero con el comando OUTPUT (como si fuese un > en Unix).

OUTPUT ARCHIVO.TXT

Los nombres en TOPS-20 pueden tener 8 letras y tres de extensiones, junto con una nombre de versión. Por ejemplo.

ARCHIVO.EXE.3

Además de los comandos no interactivos, podrás utilizar aplicaciones más complejas en el EXEC. Estos reciben la jerga de “Subsystem” o subsistema, pero son esencialmente programas interactivos ejecutables, tal como las aplicaciones tradicionales de UNIX.

Utiliza el subsistema MM para enviar y recibir correo electrónico. Podrás recibir correo desde el mundo exterior. Es muy recomendable usar texto plano para los envíos.

Utiliza el comando

MM

para activar el subsistema de correo elecrónico. Tras cargarse, verás el prompt del subsistema de correo electrónico.

MM>

Enviar un correo

En el subsistema, introduce el comando MAIL para redactar un mensaje.

MM>MAIL

Se te presentará el indicador TO: (“para:”), al cual debes introducir la dirección de correo según el siguiente criterio.

  • Si deseas enviar correo electrónico interno dentro del sistema compartido TWENEX (que cuenta con la dirección usuario@twenex.org), simplemente ingresa usuario@twenex.org (también funciona el host @kankan.twenex.org).
  • Si deseas enviar correo electrónico a direcciones sitas en @sdf.org, envíalas a usuario@sdf.org.
  • Para enviar desde TWENEX.ORG al mundo exterior a través de internet, debes reenviarlas a través del servidor de correo sdf.org intermediando el signo %. Por ejemplo, para enviar un correo a un usuario@texto-plano.xyz, utiliza usuario%texto-plano.xyz@sdf.org

Acto seguido se presentará una línea CC: para ingresar “copias de papel carbónico” o direcciones adicionales para enviarle el correo, y una línea SUBJECT: para agregar el Asunto. Tras proveerlos, daremos con Message:

Message:
 (End with ESCAPE or CTRL/D to get to send command level, CTRL/Z to send.
  Use CTRL/B to insert a file, CTRL/E to enter editor, CTRL/K to redisplay
  message, CTRL/L to clear screen and redisplay, CTRL/N or CTRL/X to abort.)
  

Teclea tu mensaje.

Una vez escrito el correo finaliza la edición del mismo con Ctrl+z, y quedará en la bandeja de salida (“Qued”). Para proceder al envío del correo, ingresa el comando SEND.

MM> SEND

El usuario de correo remoto será capaz de responder sin modificaciones a la dirección de remitente (usuario@twenex.org).

Leer el correo

En el subsistema MM, usa el comando HEADERS ALL para ver todos los correos recibidos en tu bandeja de entrada.

MM>HEADERS ALL

Usa el comando TYPE seguido por el número del correo que desees leer, o bien usa TYPE NEW para leer los correos nuevos. Por ejemplo, podrás especificar leer el primer mensaje de la bandeja de entrada:

MM>TYPE 1

Una vez presentado un correo electrónico, podrás responderlo con REPLY.

Tras la edición de la respuesta, quedarás en el prompt de envío “S>”. Para producir el envío, ingresa el comando SEND.

S> SEND

Podrías borrar el correo usando DELETE 1, y luego expungar la papelera con EXPUNGE.

Ten en cuenta que la dirección TWENEX.ORG no es demasiado compatible. Podría tener problemas para utilizar MIME64, HTML y otros tipos de correo electrónico. Privilegia el uso de texto plano.

BBOARD

Es una cartelera electrónica interna al sistema TWENEX, en forma de bandejas para el subsistema de correo. Ingresa al subsistema de correo:

MM

y solicita la carpeta BBOARD:

BBOARD

Verás que hay distintos tablones.

TWENEX contó con una destacable funcionalidad para gestionar la realización de tareas de cómputo (Trabajos o “JOBS”). Aprendamos de ellos.

Utiliza ahora el comando

FINGER

para consultar el LOGIN y nombre de los usuarios conectados, el número de trabajo que estén ejecutando (“Job”), y el número de terminal asignada (TTY) conectada en el sistema compartido, además de otras informaciones.

[KANKAN] PUBLIC:<~>@ finger
 User    Personal name       Job Subsys Idle TTY Console location
CO149    Chris Osburn         14 EXEC    10h.    Detached
CROSS    Dan Cross            12 EXEC    23h. 25 Internet: SDF.ORG
DAVIDFIN David Dore           18 EXEC    20h. 33 Internet: SDF.TWENEX.ORG
MSTONEY  mstoney              15 EXEC   1:47. 26 Internet: SDF.TWENEX.ORG
NW8L     Bob Cunnings          8 EMACS   11h  30 Internet: SDF.TWENEX.ORG
OLFP42   Olaf P                9 EXEC   4:34.    Detached
PERON    Juan Peron            6 FINGER       27 Internet: SDF.TWENEX.ORG
PVIALL   Philip H Viall       20 ADVENT  15h  40 Internet: SDF.TWENEX.ORG
RONALD   Ronald Salas         23 TIME    12h     Detached
SCM      Scott MacCallum      10 EXEC    16h.    Detached
SM5POR   Anders               11 EXEC     24. 35 Internet: SDF.TWENEX.ORG
SMJ      Stephen M. Jones     16 EXEC    16h.    Detached
                              17 EXEC    23h.    Detached
SQKEITH  Keith Halewood       24 EXEC   2:28. 32 Internet: SDF.TWENEX.ORG
TFURROWS Joseph Lyman         19 EXEC    14h. 34 Internet: SDF.TWENEX.ORG
VPOKO    Vadim Pokotilov      22 EXEC   2:31. 31 Internet: SDF.TWENEX.ORG
WRS      Walter Smith          7 EXEC    11h.    Detached
¡Esta información es muy útil para operar en un sistema de cómputo de tiempo compartido como TWENEX!

En TOPS-20 es posible desconectar la terminal teletipo simulada de un trabajo (y podremos conmutar entre conectándola a otro trabajo, incluso de otro usuario si sabemos la contraseña). Para este cometido se usa Ctrl+c y luego el comando:

DETACH

…que deja el trabajo activo pero “desconecta” la terminal del trabajo, como si de un conmutador telefónico antiguo se tratara.

Esto nos permitirá iniciar un trabajo distinto.

Para volver a “conectar” la terminal al trabajo que quedó “DETACH” (desconectado), usamos el comando FINGER para consultar el número de trabajo (JOB) del usuario, y luego empleamos ATTACH con la sintaxis del usuario y del numero de trabajo.

ATTACH (USER) usuario (JOB #) 32

Esto “reconectará” la terminal para “controlar” lo que hace el usuario peron con el trabajo 32 que estaba corriendo en TOPS-20.

Esto es útil por ejemplo para procesos largos (como compilaciones), donde se puede iniciar, DETACH la terminal, y volver luego cuando la termine, o hacer algo mientras ello sucede.

TOPS-20 cuenta con la posibilidad de “elevar” o “descender” trabajos, lo que equivale a enviar trabajos al segundo plano o elevarlos a primer plano (de forma similar a los comandos **bg** y **fg** de UNIX).

Para abandonar un trabajo debemos presionar Ctrl+c. Esto “descenderá” el trabajo actual y ejecutará un intérprete EXEC nuevo. Para volver a “mandar arriba” o elevar el trabajo anterior para continuar utilizándolo, en lugar del comando fg, en TOPS-20 usaremos el comando POP. Para “mandar abajo” y pasarlo a segundo plano (bg), usaremos el comando PUSH.

  • fg=POP
  • bg=PUSH

Editores en TWENEX

El editor por defecto es Emacs. También entrarás GNUEMACS.

Antes de utilizar el editor vi deberás activar la terminal en modo ANSI con el comando

TERM ANSI

SOS es el editor Son Of Stopgap. Para obtener ayuda de un comando tipea “H,<nombre del comando>”. For example, information on all alter mode commands is available by typing “H,A” to SOS. Help for the various SOS switches can be had by typing “H,/”. A highly abbreviated command list appears below.

Comando
A (Alter) Intraline editing
B (Begin) Go to top of file
BP(Begin Page) Go to top of page
C (Copy) Copy text
CC(Co-Copy) Co-edit copy
CT(Co-Transfer) Co-edit text move
CX(Co-edit) Begin/toggle co-edit
D (Delete) Delete text
E (Exit) Terminate editing
F (Find) Find a string
G (Go) Exit and run program
H (Help) Type help messages
I (Insert) Insert new text
J (Join) Join lines
JC(Justify Centered) Center text
JL(Justify Left) Flush text left
JR(Justify Right) Flush text right
JU(Justify) Fully justify text
JW(Justify Word) Word justify text
K (Kill) Delete page marks
L (List) List lines to LPT:
M (Mark) Insert page mark
N (Number) Re-number lines
NA(Number And open) Open a hole
NF(Number file) Renumber file
NP(number page) Renumber page
O (Output) Output text to a file
P (Print) Print lines on TTY
R (Replace) Delete and insert
S (Substitute) Search and replace
T (Transfer) Move text
VL(inVert Lower) Convert to LC
VU(inVert Upper) Convert to UC
VV(inVert inVert) Toggle case
W (World) Save the world (file)
X (eXtend) Append to end of line
; (comment) Rest of line ignored
@ (indirect) Execute from a file
= (give) Type parameter values
/ (set) Set values
. (move) Move line pointer

TECO es un editor de líneas.

TECO

La operación de TECO requiere respetar 3 reglas, y conocer 16 comandos de operación.

Reglas de TECO
  • Para darle ingreso los comandos se debe oprimir dos veces la tecla Escape (ilustrada con $ a continuación, no es el signo monetario). En algunos de los comandos se emplea Un solo $ para finalizar los argumentos de cadena (“string”).
  • Los comandos no necesitan ser ejecutados de a uno por vez. Puede ingresarse una larga serie de comandos y luego introducir “$ $”, y TECO los ejecutará en orden.
  • TECO está orientado a caracteres, de modo que recuerda la posición del cursor en su locación actual (“puntero”) en el fichero. La mayoría de los comandos muestran o cambian los contenidos del fichero en el puntero, o mueven el puntero a otro lugar dentro del fichero.
Comandos de TECO
Regla Comando Acción realizada por TECO
1. ERfichero$Y1 Abre el fichero para ingresar datos
2. EWfichero$1 Abre un fichero para salida
3. EX Guarda y sale
4. Ctrl+c, Ctrl+c Sale (sin guardar)
5. C2 Mueve el caracter hacia adelante
6. R2 Mueve el caracter hacia atrás
7. L3 Se mueve al comienzo de la línea siguiente
8. Itexto$ Inserta la cadena texto
9. J Salta al comienzo del fichero
10. ZJ Salta al Final del fichero
11. T3 Tipea desde el puntero hasta el final de la línea.
12. V Tipea la línea actual
13. D2 Borra el caracter en el puntero
14. K3 Borra la línea actual
15. Stexto$ Busca la cadena “texto”
16. FStexto_reemplazado$texto_original$ Sustituye la cadena texto_original por texto_reemplazado
  • Algunas versiones de TECO aceptan directamente un nombre de archivo como argumento de línea de comandos, haciendo que 1 y 2 sean innecesarios.
  • Algunas versiones de TECO tiene un comando EBfichero$Y que hace lo mismo que 1 y 2 en un solo paso.
  1. Prefijo numérico: mueve/borra múltiples caracteres (un número negativo invertirá la dirección).
  1. Prefijo numérico: mueve/tipeea/borra múltiples líneas (un número negativo invierte la dirección); (sólo T, K). Prefijo H: tipea/borra todo el archivo.
TECO y sus variaciones si distinguían sobre todo por su escasísimo uso de memoria, y su empleo normalmente asíncrono con la máquina remota.

Herramientas de Chat

Si desea utilizar estos comandos para conversar con otros usuarios conectados al sistema de cómputo TWENEX.ORG, debe tener configurados TERMINAL RECEIVE LINKS.

Para ello ingresa:

TERMINAL RECEIVE LINKS

Si no desea recibir mensajes en su terminal o desea cesar tal posibilidad momentáneamente, ingrese:

TERMINAL NO RECEIVE LINKS

Se trata de un programa pensado para terminales teletipo, utilizado para chatear con otros usuarios de TWENEX.org.

Asegúrate de activar la recepción de enlace de terminal con

TERM REC LINK

. Debes conocer también el número de terminal (TTY) al que deseas enlazar para la charla. Utiliza el comando FINGER revisa qué usuarios están utilizando el subsistema COMMODE y qué número de terminal (TTY) tienen.

Ejecuta el programa:

COMMODE

Enlázalo con Ctrl+L.

TTY:

Ingresa el número de terminal.

El otro/s usuario/s deberá/n aceptar el enlace.

Para empezar a hablar educadamente, presiona la barra espaciadora y se presentará tu nombre de LOGIN. Considera que la conversación es half-dúplex, lo que significa que todas las terminales enlazadas podrían escribir al mismo tiempo. Túrnate para chatear.

Si oprimes la tecla ESC se escribirá GO AHEAD (“Continúe”).

Ctrl+x te permitirá salir a EXEC. Retornarás al subsistema COMMODE con el comando POP.

El subsistema SEND permite enviar mensajes de texto a otro usuario en otra terminal. Una vez que haya recibido un mensaje por parte de un usuario, podrá utilizar el comando REPLY para responderte.

Inicia el subsistema SEND para enviar mensajes a otro usuario. Para ello utiliza:

send usuario

Responde usando:

REPLY usuario

Sal del subsistema SEND mediante Ctrl+z.

Protección de Ficheros y Directorios

TOPS-20 permite protección de DIRECTORIOS y ARCHIVOS de 18 bits, lo que incluye funcionalidades encontradas bajo los permisos de 9 bits de UNIX, asñi como protecciones adicionales que son únicas a TOPS-20.

* PARA ARCHIVOS:

   OCTAL   PROPIEDAD
   --------------------
      77   ACCESO TOTAL
      40   LECTURA
      20   LECTO-ESCRITURA
      10   EJECUCIÓN
      04   INCLUIR
      02   LISTAR
      00   SIN ACCESSO

* PARA DIRECTORIOS:

   OCTAL   PROPIEDAD
   --------------------
      77   ACCESO TOTAL
      40   LECTURA
      10   CONEXIÓN
      04   CONSTRUIR
      00   SIN ACCESO

Las PROTECCIONES están agrupadas juntas en un conjunto de 3, y corresponde a:

   @SET DIRECTORY PROTECTION <LOGIN> 777700
                                      ^ ^ ^
                                      | |  \ todos los demás usuarios
                                      |  \__ usuarios en su grupo
                                       \____ su propio usuario (propietario)

Como tal, usted y los usuarios en su grupo tendrán acceso completo al directorio <LOGIN>, mientra que todos los demás usuarios no tendrán acceso alguno.

Si está acostumbrado a los permisos de fichero de UNIX, debería resultarle impresionante el manejo que hace TOPS-20, ya que es posible crear un archivo que:

- No aparezca en un listado de directorio - No sea legible incluso si conoce su nombre. - Sea agregable a todos los usuarios

Los ficheros tienen atributos de permisos como en Unix, pero en octales.

77 es acceso completo
52 solo lectura
00 acceso denegado

El espacio se indica en “PAGES” (páginas).

Bash en TOPS-20

Se puede llamar a esta función totalmente espúrea, pero puedes ejecutar el intérprete BASH del proyecto GNU compilado para TOPS-20.

Para ello ingresamos:

SH

Obtendrás el intérprete Bash con su prompt:

bash$

No es posible utilizar todas las facilidades de Bash pues no todas están integradas, pero si ingresas SET o ENV obtendrás los datos de ambiente que dilucidan a BASH sobre TOPS-20.

Para salir del intérprete Bash, ingrese exit.

En Unix tenemos PATH, tenemos ENV, pero en TOPS-20 tenemos los nombres lógicos, que permiten agrupar directorios (y unidades) siguiendo una lógica.

[KANKAN] PUBLIC:<~>@ inFORMATION (ABOUT) logiCAL-NAMES (OF) sysTEM 
ACCOUNT: => NEO:<ACCOUNTS>
BBOARD: => PS:<BBOARD>
BLI: => SYS:
BS: => NEO:
C: => KCC-LIB:
DEFAULT-EXEC: => SYSTEM:EXEC.EXE
DOC: => BS:<DOCUMENTATION>
DOMAIN: => BS:<SYSTEM>
EDITOR: => SYS:EMACS.EXE
EMACS: => BS:<EMACS>
FINGER: => PS:<FINGER>
FORTRAN: => BS:<FORTRAN>
GAMES: => PS:<GAMES>
HLP: => BS:<HELP>,HLP1:,HLP3:,HLP4:
HLP1: => UNIX:<ROOT.USR.MAN.HLP1>,UNIX:<ROOT.USR.LOCAL.MAN.HLP1>
HLP3: => UNIX:<ROOT.USR.MAN.HLP3>,UNIX:<ROOT.USR.LOCAL.MAN.HLP3>
HLP4: => UNIX:<ROOT.USR.MAN.HLP4>,UNIX:<ROOT.USR.LOCAL.MAN.HLP4>
KCC-LIB: => UNIX:<ROOT.USR.LOCAL.LIB>,UNIX:<ROOT.USR.LIB>,UNIX:<ROOT.LIB>,UNIX:<
ROOT.USR.INCLUDE>
MAIL: => POBOX:<MAIL>
MAILQ: => POBOX:<MAIL.QUEUE>
POBOX: => PS:
PS: => PUBLIC:
RUNNING-CONFIG: => SYSTEM:RUNNING.CONFIG
SAI: => BS:<SAIL>
SERR: => BS:<SYSTEM-ERROR>
SPOOL: => BS:<SPOOL>
STARTUP-CONFIG: => SYSTEM:STARTUP.CONFIG
SYS: => BS:<SUBSYS>,SYSTEM:,UNIX-SYS:,FORTRAN:,UNS:,DSK:,GAMES:
SYSTEM: => BS:<SYSTEM>
UNIX: => BS:
UNIX-ROOT: => UNIX:<ROOT>
UNIX-SYS: => UNIX:<ROOT.USR.LOCAL.BIN>,UNIX:<ROOT.USR.BIN>,UNIX:<ROOT.BIN>,UNIX:
<ROOT.USR.BIN.X11>
UNS: => BS:<UNSUPPORTED>
UNV: => SYS:
W7: => BS:<WEBSTER>

En este, HLP: incluye las estructuras HLP1, HLP2, HLP3 y HLP4.

Tenemos un sistema de archivado, donde BS:<SYSTEM> es la carpeta de sistema.

También tenemos programas “no soportados”, que figuran en BS:<UNSUPPORTED>

Todos estos programas son los más útiles y compilados para el sistema.

   NEO:<UNSUPPORTED>
 11TAPE.EXE.4;P775252       5 2560(36)   18-Sep-1980 08:04:05 OPERATOR  
 AID.EXE.5;P775252         22 11264(36)  20-Jul-1995 19:38:01 OPERATOR  
 ASCII.EXE.5;P775252        2 887(36)    13-Sep-1984 07:31:00 OPERATOR  
 ATSIGN.EXE.5;P775252;E    42 21504(36)   2-Jul-1982 01:30:17 OPERATOR  
 B362LB.REL.5;P775252      31 15495(36)  25-Feb-1982 19:50:31 OPERATOR  
 B362PB.REL.5;P775252      33 16749(36)  23-Apr-1986 23:46:53 OPERATOR  
 BASIC.EXE.6;P775252       42 21504(36)  28-Jun-1983 04:07:07 SMJ       
 BASIC10.EXE.5;P775252     42 21504(36)  28-Jun-1983 04:07:07 OPERATOR  
 BASOTS.EXE.5;P775252      80 40960(36)  30-Jan-1983 03:51:01 OPERATOR  
 BATMAC.UNV.5;P775252       5 2353(36)   18-Jan-1996 01:23:55 OPERATOR  
 BATUPD.EXE.5;P775252       5 2560(36)   14-Nov-1979 03:49:03 OPERATOR  
 BBDATE.EXE.5;P775252       9 4608(36)   11-Aug-1986 06:40:44 OPERATOR  
 BBOARD.EXE.5;P775252;E    14 7168(36)   22-May-1985 21:26:35 OPERATOR  
 BLANKT.REL.5;P775252       1 225(36)    29-Sep-1983 20:42:46 OPERATOR  
 BLIS10.EXE.5;P775252      95 48640(36)  15-Apr-1982 09:42:31 OPERATOR  
 BLISS.EXE.5;P775252      181 92672(36)   5-Apr-2004 23:16:47 OPERATOR  
 BLSOTS.REL.5;P775252       5 2285(36)   22-Oct-1993 18:53:56 OPERATOR  
 BMGREP.EXE.5;P775252      18 9216(36)   25-Jul-1985 03:38:03 OPERATOR  
 BSPLIT.EXE.5;P775252       4 2048(36)   19-Jul-1985 21:11:13 OPERATOR  
 C.UNV.5;P775252           23 11315(36)  15-Apr-1982 09:05:35 OPERATOR  
 CALC.EXE.5;P775252        17 8704(36)   20-Nov-1979 00:46:40 OPERATOR  
 CCPP.EXE.5;P775252       201 102912(36) 24-Jul-1990 20:32:04 OPERATOR  
 CCREF.EXE.5;P775252       41 20992(36)  18-Mar-1988 20:47:44 OPERATOR  
 CLEAN.EXE.5;P775252        5 2560(36)    6-Dec-1981 12:04:47 OPERATOR  
 COOKIE.EXE.5;P775252      11 5632(36)   27-Sep-1983 23:51:00 OPERATOR  
 CPUSE.EXE.5;P775252        5 2560(36)   15-May-1985 08:36:39 OPERATOR  
 CREDIR.EXE.5;P775252       9 4608(36)    4-Nov-1995 00:13:45 OPERATOR  
 CREF.EXE.5;P775252        11 5632(36)   31-Aug-1988 22:54:48 OPERATOR  
 CROSS.EXE.5;P775252       29 14848(36)  13-Apr-1981 04:45:58 OPERATOR  
 CRSREF.EXE.5;P775252       7 3584(36)   25-Jan-1977 07:09:52 OPERATOR  
 CRYPT.EXE.5;P775252        4 2048(36)   11-Jul-1977 17:45:52 OPERATOR  
 CTAGS.EXE.5;P775252       19 9728(36)    6-Dec-1985 01:21:17 OPERATOR  
 CTRLSTRIP.EXE.5;P775252   26 13312(36)  13-Apr-1983 03:45:50 OPERATOR  
 CTYPEEK.EXE.5;P775252;E    1 36(36)     15-Dec-1982 06:14:43 OPERATOR  
 D25.EXE.5;P775252          8 4096(36)   26-Sep-1985 03:08:10 OPERATOR  
 D60UNV.UNV.5;P775252       9 4536(36)   17-Jan-1996 22:54:30 OPERATOR  
 DBEDIT.EXE.5;P775252      10 5120(36)   11-Dec-1992 20:33:55 OPERATOR  
 DBSYM.FUN.5;P775252        6 2584(36)   15-Apr-1983 08:58:06 OPERATOR  
 DCALC.EXE.5;P775252       22 11264(36)  17-Jan-1981 00:56:10 OPERATOR  
 DECOCT.EXE.5;P775252       2 1024(36)    3-Apr-1989 15:05:53 OPERATOR  
 DIABLO.EXE.5;P775252      24 12288(36)   1-Jul-1982 18:33:35 OPERATOR  
 DIFF.EXE.5;P775252        43 22016(36)  16-May-1983 01:20:31 OPERATOR  
 DIRED.EXE.5;P775252       43 22016(36)  18-May-1982 23:38:13 OPERATOR  
 DIRPNT.EXE.5;P775252      13 6656(36)   18-Nov-2007 23:49:52 OPERATOR  
 DIRTST.EXE.5;P775252      30 15360(36)   6-Apr-1982 00:51:06 OPERATOR  
 DPYDEF.FUN.5;P775252       4 1628(36)    6-Apr-1981 01:34:56 OPERATOR  
 DSKUSE.EXE.5;P775252       6 3072(36)   16-Apr-1986 05:26:10 OPERATOR  
 DSR.EXE.5;P775252         86 44032(36)   2-Feb-1981 18:31:35 OPERATOR  
 DVITTY.EXE.5;P775252      15 7680(36)   16-Sep-1987 00:14:05 OPERATOR  
 DXMCA.ADX.5;P775252        4 1892(36)   10-Aug-1981 17:01:00 OPERATOR  
 EDUCE.EXE.5;P775252       18 9216(36)   26-Apr-2005 23:01:17 OPERATOR  
 EGREP.EXE.5;P775252       20 10240(36)   2-Mar-1985 01:09:24 OPERATOR  
 ELLE.EXE.5;P775252        94 48128(36)  10-Sep-1987 10:29:14 OPERATOR  
 ENVIRONMENT.EXE.5;P775252   4 2048(36)  30-Apr-1990 01:48:04 OPERATOR  
 EPS2PS.EXE.5;P775252      51 26112(36)  25-Aug-1989 00:05:12 OPERATOR  
 ETEACH.EXE.5;P775252      27 13824(36)   4-Feb-1986 09:57:27 OPERATOR  
 EX2SAV.EXE.5;P775252       4 2048(36)   15-Nov-2005 02:28:24 OPERATOR  
 EXTERN.PAS.5;P775252       1 1503(7)     6-Apr-1982 02:00:34 OPERATOR  
 FAILSA.EXE.5;P775252      13 6656(36)   17-Aug-1977 06:36:04 OPERATOR  
 FE.EXE.5;P775252           7 3584(36)   15-Apr-1982 10:07:58 OPERATOR  
 FETCH.EXE.5;P775252        2 1024(36)    9-Sep-2004 19:37:21 OPERATOR  
 FFIND.EXE.5;P775252       22 11264(36)  23-Feb-1983 00:15:35 OPERATOR  
 FGREP.EXE.5;P775252       16 8192(36)   19-Mar-1985 20:33:08 OPERATOR  
 FILADR.EXE.5;P775252       6 3072(36)   12-Jun-1980 21:21:46 OPERATOR  
 FILEX.EXE.5;P775252       14 7168(36)   25-Jun-1987 12:58:00 OPERATOR  
 FILUSE.EXE.5;P775252;E     3 1536(36)    7-Sep-1979 20:42:38 OPERATOR  
 FIND.EXE.5;P775252        32 16384(36)   7-Jun-1985 11:14:52 OPERATOR  
 FOROT6.EXE.5;P775252      39 19968(36)  30-Nov-1981 16:41:42 OPERATOR  
 FOROT7.EXE.5;P775252      46 23552(36)   4-Feb-1983 22:59:05 OPERATOR  
 FORTH.EXE.1;P775252        3 1266(36)   10-Dec-2011 02:41:52 SMJ       
   .MID.1;P775252          10 23118(7)   10-Dec-2011 02:41:21 SMJ       
 FU.EXE.5;P775252          24 12288(36)   1-Feb-1997 01:18:17 OPERATOR  
 GMAKE.EXE.5;P775252      129 66048(36)   2-Feb-1990 22:24:12 OPERATOR  
 GNUEMACS.EXE.1;P775252   412 210944(36)  3-Jan-1998 21:26:28 OPERATOR  
 GREP.EXE.5;P775252        17 8704(36)   19-Mar-1985 20:30:18 OPERATOR  
 HELP.EXE.5;P775252         7 3584(36)   11-Feb-1985 00:59:11 OPERATOR  
 HSTINF.EXE.5;P775252;E     4 2048(36)    3-Dec-1982 05:07:10 OPERATOR  
 IDDT.EXE.5;P775252        22 11264(36)   5-Dec-1982 04:48:28 OPERATOR  
 ISPELL.EXE.5;P775252      87 44544(36)  14-Jul-1981 07:43:58 OPERATOR  
 JSEND.EXE.5;P775252        2 1024(36)   14-Nov-1986 01:04:22 OPERATOR  
 JSYS.PAS.5;P775252         4 7694(7)    19-Jul-1983 02:44:52 OPERATOR  
 JSYS-6.EXE.6;P775252       7 3584(36)    9-Feb-1993 22:50:37 HELLIWELL 
 KERMIT.EXE.5;P775252      55 28160(36)   2-May-1985 22:02:14 OPERATOR  
 LASTN.EXE.5;P775252       10 5120(36)   26-Sep-1983 04:54:32 OPERATOR  
 LISMAC.UNV.5;P775252       1 260(36)    18-Jan-1996 00:28:29 OPERATOR  
 LISP.EXE.5;P775252        19 9728(36)   19-Sep-1980 17:53:38 OPERATOR  
 LK.EXE.5;P775252;E         1 302(36)    27-Apr-1978 02:03:00 OPERATOR  
 LOWTSA.REL.5;P775252       7 3319(36)   13-Apr-1980 00:53:35 OPERATOR  
 LPTMAC.UNV.5;P775252       3 1063(36)   18-Jan-1996 00:28:19 OPERATOR  
 LPTOPS.EXE.5;P775252      78 39936(36)  31-Jul-1993 19:28:06 OPERATOR  
 MACDLX.EXE.5;P775252      10 4828(36)   18-Aug-1978 19:16:07 OPERATOR  
 MACGET.EXE.5;P775252       9 4608(36)    8-Mar-1985 05:38:27 OPERATOR  
 MACLISP.EXE.5;P775252      1 68(36)      9-Dec-1979 00:30:34 OPERATOR  
 MACPUT.EXE.5;P775252       9 4608(36)    7-Mar-1985 06:53:57 OPERATOR  
 MACSIM.UNV.5;P775252       2 934(36)    16-Jun-1979 03:53:04 OPERATOR  
 MACSYM.FUN.5;P775252      12 6103(36)   16-Nov-1981 07:07:48 OPERATOR  
 MACSYMA.EXE.5;P775252    378 193536(36) 29-Jul-1983 09:45:26 OPERATOR  
 MACTEN.UNV-OLD.5;P775252   8 3759(36)   25-Mar-1982 22:18:21 OPERATOR  
 MAKRAM.EXE.5;P775252       5 2560(36)   15-Apr-1982 10:22:59 OPERATOR  
 MAKVFU.EXE.5;P775252       7 3584(36)   15-Apr-1982 10:24:45 OPERATOR  
 MDDT.EXE.5;P775252;E       1 166(36)    20-Sep-1978 00:25:56 OPERATOR  
 MERLIN.EXE.5;P775252      11 5632(36)   12-Feb-1994 00:22:15 OPERATOR  
 MIDAS.EXE.5;P775252       67 33946(36)  22-Feb-1982 14:36:08 OPERATOR  
 MINITAB.EXE.5;P775252      4 2048(36)   23-Jul-1986 03:32:47 OPERATOR  
   .GRAPH51.5;P775252       3 7567(7)    11-Jul-1986 21:47:10 OPERATOR  
   .HELLO51.5;P775252       1 144(7)      6-Jan-1986 19:22:07 OPERATOR  
   .HLPIND51.5;P775252      3 1520(36)   13-Apr-1986 03:43:50 OPERATOR  
   .HLPTXT51.5;P775252    109 277275(7)  15-Nov-1993 19:23:47 OPERATOR  
   .NEWS51.5;P775252        4 9492(7)     3-Jul-1986 02:27:30 OPERATOR  
   .PARM51.5;P775252        1 25(7)      22-Nov-1985 20:42:01 OPERATOR  
 MMONLY.EXE.5;P775252      60 30720(36)  25-May-1989 15:04:49 OPERATOR  
 MMSTAT.EXE.5;P775252;E    52 26624(36)   8-Dec-1992 23:59:26 OPERATOR  
 MODEM.EXE.5;P775252        8 4096(36)   14-Jul-1985 01:45:13 OPERATOR  
 MONSYM.FUN.5;P775252     102 52026(36)   7-May-1990 01:36:26 OPERATOR  
   .L36.5;P775252          41 20893(36)  10-Feb-1985 23:48:48 OPERATOR  
 MPW.EXE.5;P775252;E       47 24064(36)  22-Feb-1979 22:48:48 OPERATOR  
 MSPLIT.EXE.5;P775252       4 2048(36)   13-Nov-1986 17:58:16 OPERATOR  
 MSRCCOM.EXE.5;P775252     11 5632(36)   24-Oct-1980 10:51:34 OPERATOR  
 MSTR.EXE.5;P775252         6 3072(36)   22-Apr-1985 22:58:39 OPERATOR  
 MTCOPY.EXE.5;P775252       8 4096(36)   25-Jan-1982 15:10:09 OPERATOR  
 MTCPF.EXE.5;P775252        3 1536(36)   21-Jun-2004 00:36:29 OPERATOR  
 MTU.EXE.5;P775252         19 9728(36)    9-Jun-1994 21:43:35 OPERATOR  
 NCPCALC.EXE.5;P775252     97 49664(36)  28-May-1997 19:05:59 OPERATOR  
 NDVI2PS.EXE.5;P775252     32 16384(36)   5-Aug-1986 21:23:24 OPERATOR  
 NDVIAPPLE.EXE.5;P775252   32 16384(36)   3-Jul-1986 23:16:09 OPERATOR  
 NEWS.EXE.4;P775252        68 34816(36)  18-Oct-1993 18:40:09 OPERATOR  
 NLNSRT.EXE.4;P775252       4 2048(36)   16-Apr-1984 16:17:34 OPERATOR  
 P20LIB.REL.4;P775252      46 23551(36)   7-May-1982 17:38:40 OPERATOR  
 PASCAL.EXE.5;P775252     104 53248(36)  23-Dec-2010 00:58:18 GORIN     
 PASCMD.PAS.4;P775252       7 17919(7)   18-Sep-1983 12:52:53 OPERATOR  
 PASDDT.REL.4;P775252       1 26(36)      7-Mar-1983 09:11:09 OPERATOR  
 PASLIB.REL.4;P775252       2 673(36)     7-Mar-1983 09:30:08 OPERATOR  
 PASSEG.EXE.4;P775252      53 27136(36)  18-Jul-1983 11:40:34 OPERATOR  
 PASUNS.REL.4;P775252      53 26914(36)  23-Jul-1983 04:42:20 OPERATOR  
 PCHIST.EXE.4;P775252       7 3584(36)   14-Aug-2002 17:34:11 OPERATOR  
 PCREF.EXE.4;P775252       24 12288(36)   8-Sep-1979 07:44:30 OPERATOR  
 PCROSS.EXE.4;P775252       6 3072(36)    8-Sep-1979 09:48:20 OPERATOR  
 PEEK.EXE.4;P775252         1 25(36)     16-Aug-1980 05:51:45 OPERATOR  
 PERUSE.EXE.4;P775252       9 4608(36)   25-Dec-1981 12:22:22 OPERATOR  
 PF.EXE.4;P775252;E         3 1536(36)   21-Jun-1989 01:54:38 OPERATOR  
 PFIND.EXE.4;P775252;E      3 1536(36)   21-Jun-1989 01:54:38 OPERATOR  
 PFORM.EXE.4;P775252       31 15872(36)   8-Mar-1981 22:34:50 OPERATOR  
 PHONE.EXE.1;P775252       21 10752(36)   2-Mar-2022 05:26:34 SMJ       
 PHOTO.EXE.4;P775252;E      5 2560(36)   24-Nov-1982 00:31:35 OPERATOR  
 PIP.EXE.4;P775252         17 8704(36)    5-Dec-1976 01:54:04 OPERATOR  
 PROM.EXE.4;P775252         9 4608(36)   13-Dec-1989 03:10:34 OPERATOR  
 PSXLIB.REL.4;P775252      54 27178(36)  18-Mar-1983 23:25:24 OPERATOR  
 QF.EXE.4;P775252           9 4608(36)   13-Mar-1984 16:49:21 OPERATOR  
 RCUSR.EXE.4;P775252        2 1024(36)   21-Jul-2006 23:30:24 OPERATOR  
 REMIND.EXE.4;P775252      15 7680(36)   26-Jan-1989 11:28:33 OPERATOR  
 ROMBOY.EXE.4;P775252       6 3072(36)   25-Aug-1994 01:03:57 OPERATOR  
 ROMBS.EXE.4;P775252        6 3072(36)   10-Feb-1994 05:45:14 OPERATOR  
 ROMEXE.EXE.5;P775252      13 6656(36)    4-Jun-2008 19:25:54 OPERATOR  
 RUNOFF.EXE.4;P775252      85 43520(36)   1-Dec-1982 03:12:18 OPERATOR  
 RWHO.EXE.4;P775252;E       4 2048(36)   16-Nov-1984 05:48:22 OPERATOR  
 SAIL.EXE.5;P775252        99 50688(36)  16-Dec-2010 20:07:04 GORIN     
 SAILIO.SAI.4;P775252       1 1480(7)    21-Jun-1978 22:21:29 OPERATOR  
 SAILPL.REL.4;P775252      20 10104(36)  12-Mar-1978 18:42:52 OPERATOR  
 SDDT.REL.4;P775252         1 91(36)     13-Apr-1980 01:03:49 OPERATOR  
 SNOBOL.EXE.4;P775252      23 11776(36)  25-Aug-1994 01:18:56 OPERATOR  
   .INI.4;P775252          15 7296(36)   10-Sep-1976 13:42:19 OPERATOR  
 SNOBOL4.EXE.4;P775252     53 27136(36)  25-Jan-1977 14:25:34 OPERATOR  
 SPELL.EXE.4;P775252      246 125952(36)  9-Aug-2000 22:19:16 OPERATOR  
 SRCCOM.EXE.4;P775252      11 5632(36)   26-Jul-2008 01:24:12 OPERATOR  
 SSORT.EXE.4;P775252       16 8192(36)    4-Feb-1977 13:43:31 OPERATOR  
 STRTST.EXE.4;P775252       5 2467(36)   18-Aug-1978 19:17:02 OPERATOR  
 STRU.EXE.4;P775252        14 7168(36)    6-Nov-1994 00:35:22 OPERATOR  
 SYMPNT.EXE.5;P775252       5 2560(36)   22-Mar-2009 21:55:47 GORIN     
 T-6-SAISG8.EXE.4;P775252  36 18432(36)  20-Apr-1979 07:05:27 OPERATOR  
   .SAV.4;P775252          36 18432(36)  20-Apr-1979 07:05:27 OPERATOR  
 T-6-SAISG9.EXE.4;P775252  36 18432(36)  12-Apr-1980 23:08:44 OPERATOR  
 T10RUN.EXE.4;P775252       8 4096(36)    9-Nov-1995 19:58:38 OPERATOR  
 T20TAR.EXE.4;P775252       8 4096(36)   27-Apr-1987 21:41:43 OPERATOR  
 TAGS.EXE.4;P775252         5 2560(36)   10-Sep-1981 19:23:30 OPERATOR  
 TECO.EXE.4;P775252        11 5632(36)    3-Sep-1979 05:07:45 OPERATOR  
 TIMER.EXE.1;P775252       14 7168(36)   26-Jul-2009 23:51:58 GORIN     
 TIMSRV.EXE.4;P775252       3 1100(36)   18-Dec-1982 08:04:12 OPERATOR  
 TODAY.EXE.4;P775252       52 26624(36)   5-Apr-1989 03:11:18 OPERATOR  
 TODAYC.EXE.4;P775252      11 5632(36)    5-Apr-1989 03:18:50 OPERATOR  
 TOPS20.EXE.4;P775252      11 5632(36)   13-Feb-1987 21:42:23 OPERATOR  
 TSRCCOM.EXE.5;P775252      9 4608(36)   20-Jan-1982 22:40:48 OPERATOR  
 TYPBIN.EXE.5;P775252       2 1024(36)   29-Mar-1977 01:43:50 OPERATOR  
 TYPREL.EXE.6;P775252      36 18432(36)   6-Jan-2010 03:00:18 GORIN     
 WATCH.EXE.5;P775252      136 69632(36)  23-Oct-1984 03:27:18 OPERATOR  
 WEBSTER.EXE.5;P775252;E   10 4728(36)    2-Oct-1985 20:46:37 OPERATOR  
 WHOIS.EXE.5;P775252;E      6 3072(36)   19-Apr-1984 22:54:02 OPERATOR  
 WORDS.EXE.4;P775252      506 259072(36) 14-Oct-1979 07:02:14 OPERATOR  
 XBLISS.EXE.1;P775252       9 4608(36)    9-Jul-1986 19:18:49 HELLIWELL 
 XGLB.EXE.5;P775252         4 2048(36)    7-May-2008 00:16:16 OPERATOR  
 XGLOB.EXE.1;P775252        4 2048(36)    7-May-2008 00:16:16 OPERATOR  

 Total of 5988 pages in 190 files

Ingresemos un programa en MACRO-10. Creamos el código con el editor emacs para un fichero llamado vpc.mac

emacs vp.mac

Le pegamos el código:

    TITLE VPC
    SEARCH MONSYM
    
EVEC:   JRST    START
        JRST    START
        EXP     0
        
START:  RESET%
        HRROI   1,[ASCIZ / Viva Peron, carajo!/]
        PSOUT%
        HALTF%
        JRST    START
        
        END     <3,.EVEC>

…o bien podríamos usar una versión en C de este, llamada vp.c:

void main(){
printf("Viva Peron!!!\n");
}

Cualquiera sea el caso, podremos compilarlos:

Si no indicamos, lo hará con la nativa en macro-10; si lo especificamos podremos compilar la de C. En tal caso:

compile vp.c

…o bien:

compile vpc

Luego lo cargamos con

load vpc

y lo guardamos para obtener el binario ejecutable hello.exe.

save vpc

En tanto, para la versión en C usaríamos:

compile vp.c
load vp
save vp

Esto creará dos ejecutables vpc.exe (en MACRO-10) y vp.exe (en C). Listarlo nos demostrará la diferencia de espacio, siendo MACRO-10 mucho más chico que C en el resultado compilado.

Podremos ejecutarlos con:

vp

o bien

vpc

Uso de FTP en TWENEX

Podrás usar el el subsistema FTP desde SDF.org u otro host para cargar y descargar ficheros a tu instancia TWENEX. Ingresa al subsistema de transferencia de ficheros con:

ftp sdf.org

Loguéate con:

login ftp

Al encontrar el prompt FTP> del cliente de transferencia de ficheros, presiona ? para ver los comandos en uso en el subsistema FTP.

Podremos usar

cd /pub/usuario

También podremos usar

open [172.16.36.37]

…y podrás loguearte a las antiguas instancias de usuarios del emulador Panda. Ten en cuenta estas reglas de uso:

  • Para transferir fichero de texto o no compilados, utiliza el modo ASCII con el comando SET TYPE ASCII,
  • Para binarios, debemos usar modo PAGED, con
FTP>SET TYPE PAGED

Los comandos son los tradicionales de FTP. Utiliza CD y DIR para moverte en los directorios, y utiliza GET para descargarlo.

JUEGOS

cookie

Da una galletita de la suerte.

pacman

Es un pacman.

#Lección 2

  • tutorial_de_tops-20_en_twenex.org.1647368411.txt.gz
  • Última modificación: 2022/03/15 18:20
  • por peron