Mostrando entradas con la etiqueta DEC. Mostrar todas las entradas
Mostrando entradas con la etiqueta DEC. Mostrar todas las entradas

miércoles, 7 de junio de 2023

¿Cómo instalo RSX-11M Plus en Ubuntu?

¡Trabajadores!

Los hackers no pueden dar nada que la CPU no compile. Lo que el hacker puede hacer es evitar que entre todos los programadores, algunos se lleven la parte del león mientras que otros carguen con la parte del ratón. Toda nuestra obra bajo GPLv3 ha de apreciarse desde ese ángulo. Con estas compilaciones, nuestros hackers - ungidos bajo el signo de la justicia social - no hay hecho mas que programar esa justicia, dando a los usuarios lo que es de los usuarios, y a la CPU lo que es de la CPU.

Esta programación social ha hecho que yo cuente con un gran predicamento entre los hackers, en razón de que les he asegurado la Justicia Social que nunca habían tenido. He obrado con lealtad y sinceridad y he trabajado incansablemente por favorecer a los que desde hace cincuenta años han estado sumergidos y aplastados económicamente. Hoy, que ven que gozan con su código, compilan y depuran mejor. Sienten que se los ha dignificado; y es lógico que así sea. Yo he levantado la bandera de la dignificación del hacker, porque este país necesita hombres y mujeres de compilen, y es la suprema dignidad de la compilación la que estoy creando. No hay ninguna dignidad más alta que compilar.

Sin duda que GNU con Linux es uno de los ambientes principales para lograr esta Justicia, pero incluso antes que Ubuntu fuese una idea, yo ya lo lograba con la DEC PDP-11 de 16 bits poblada con RSX-11M Plus

Se trató de una serie de sistemas operativos multiusuario iniciada en 1973 para resolver procesos computacionales en tiempo real para dichas computadoras. Sin embargo, a lo largo de su dilatada vida comercial se utilizaron como base para el desarrollo de todo tipos de tareas informáticas.

Podremos utilizar el emulador de PDP-11/70 y las cintas de 9track.net y bitsavers.org.

A través de la devolución de la terminal os enseñaré cómo instalar RSX-11M-Plus v4.x, aparecidas generalmente a partir de mediados de 1985. 

En aras de la brevedad que siempre es útil en todo tipo de proyectos, os indicaré en azul lo que deben tipear en el intérprete de comandos "MCR", y en rojo las teclas a presionar. Naturalmente esto puede realizarse en un DEC PDP-11 real de la serie 13, 43, 70 e incluso las modernas 84 o 93, pero es particularmente útil para su émulo moderno PiDP-11/70 basadas en una Raspberry Pi, aunque llevará llevará mas tiempo.

Copiar el kit de instalación al disco

La cinta de distribución contiene un conjunto BRU, la Utilidad de Respaldo y Restauración de RSX, para un sistema base. Se trata en este caso de una versión sola para la unidad de cinta TS11, capaz de bootear desde ella. La cinta utilizada es la BB-J083H-BC (RSX-11M-PLUS V4.2 MT:1600 BRUSYS STANDALONE COPY SYSTEM)

RSX-11M/RSX-11M-PLUS Standalone Copy System V04
 
MCR> 
 
RSX-11M/RSX-11M-PLUS Standalone Configuration and Disk Sizing Program
 
Valid switches are:
        /CSR=nnnnnn to change the default device CSR
 
        /VEC=nnn to change the default device vector
        /FOR=n to change the default magtape formatter number
        /DEV to list all default device CSR and vectors

>

Enter first device: MS0:

Enter second device: DB0:

Hit RETURN and enter date and time as 'TIM HH:MM MM/DD/YY'

>TIM 20:24 05/24/90

Ahora hemos de revisar cualquier bloque dañado en los discos de destino, lo que creará una tabla de bloques dañados. Naturalmente al usar un emulador no deberían existir; no obstante esta operación ha de realizarse para evitarnos que los programas de RSX protesten tontamente por su inexistencia.

>RUN BAD
>
BAD>DB0:
BAD -- DB0: Total bad blocks= 0.
BAD>[presionar Ctrl+z]

A continuación colocamos la cinta de RSX en la unidad TS11 virtual y corremos la BRU. En este caso utilizamos la cinta BB-J081G-BC (RSX-11M-PLUS V4.2 BRU MT:1600 ID:RSX11MPBL58 DIST KIT)

>RUN BRU
>
BRU>/REW MS0: DB0:
BRU - Starting Tape 1 on MS0:

BRU - End of Tape 1 on MS0:

BRU - Completed

BRU>[presionar Ctrl+z]

>

Iniciar el sistema de base

Para ello detenemos el sistema y booteamos desde el sistema recién creado (dispositivo rp0 en Simh). El sistema de base consiste en una imagen ejecutable que cuenta con una configuración segura por defecto, que podía correr en cualquier modelo de la línea PDP-11 (que cuente con los requerimientos básicos para RSX-11M Plus v4.x, claro está). Existen varios controladores de dispositivos ya configurados en la misma, lo que facilitará el proceso de instalación del sistema completo.

RSX-11M-PLUS V4.2  BL58   1024.KW  System:"Baseline"
>RED DB:=SY:
>RED DB:=LB:
>RED DB:=SP:
>MOU DB:"RSX11MPBL58"
>@[2,54]BASTART.CMD
>SET /CRASHDEV=MM0:
SET -- Crash device MM0: has been successfully loaded
>;
>;
>;      RSX-11M-PLUS V4.2 Distribution Kit
>;
>;      This is the baseline system of the RSX-11M-PLUS V4.2
>;      distribution kit. This system contains an assortment of
>;      devices and may in fact be of some use on your target
>;      system. The main purpose of the baseline system, however,
>;      is to provide a working system environment which may be
>;      used to generate a custom-tailored operating system for
>;      your target hardware. We will now provide instructions
>;      to guide you through the startup procedure.
>;
>;
>;      It is important to specify the correct date and time.
>;      Use the format "DD-MMM-YY HH:MM".
>;
>* Please enter the date and time [S]: 24-MAY-90 20:25

Naturalmente, hemos de saber que cualquier versión de RSX-11M-PLUS anterior a la 4.6 no conforman el bug Y2K, por lo cual no aceptan fechas y operaciones nominales por encima del 31 de diciembre de 1999.

>TIME 24-MAY-90 20:25
>;
>;      Now allocate checkpoint space for use by system utilities.
>;
>ACS SY:/BLKS=1024.
>;
>;      The following information is necessary for this command file
>;      to correctly access the remainder of the distribution kit.
>;
>* Did you receive your RSX-11M-PLUS distribution kit on magnetic tape? [Y/N]: Y
>;
>;      Please enter the name of the magnetic tape drive, which should
>;      still contain the distribution tape. The name is of the form:
>;
>;              MM1: or
>;              MS0: etc...
>;
>* Which tape drive contains the distribution tape [S]: MS0:
>;
>;      We will now set the CSR of the controller that will be
>;      used to bring in the remainder of the distribution kit to
>;      the standard value. If your controller is not at this address
>;      it will be necessary for you to manually configure the system
>;      by issuing the appropriate CON commands. Answer Yes to the
>;      manual configuration question to do this. If your controller
>;      is at the standard address, you do not have to do a manual
>;      configuration.
>;
>CON SET RHC CSR=160000
>CON SET MTA CSR=160000
>CON SET MSA CSR=172522
>CON SET MSA VEC=224
>CON SET MUA CSR=160000
>;
>;      We will now bring on line all devices which were generated into
>;      this baseline image and which exist in your hardware system.
>;
>;      If there is hardware in your system occupying a control
>;      register address which conflicts with a standard DIGITAL
(...)
>;      does occur, rebootstrap the baseline system and answer Yes
>;      to this question.  Instructions will then be provided to help
>;      circumvent the problem.
>;
>* Do you need to do manual configuration? [Y/N]: N
>;
>CON ONLINE ALL
>;
>;      Prepare to bring in the remainder of the distribution kit
>;
>* Is your target system disk an RC25, RK07, or RD52? [Y/N]: N
>;
>;      Since the files in the second backup set are not necessary to generate
>;      your system you may wish to skip the verify pass to save time.
>;
>* Do you want to verify the second backup set? [Y/N]: N
>;
>;      We will now mount the tape in MS0: for access by BRU.
>;
>MOU MS0:/FOR/DENS=1600
>;
>;      Ensure that the BRU task is installed.
>;
>INS $BRU
>;
>;      We will now load the remainder of the distribution kit.
>;
>TIME
20:25:40 24-MAY-90
>;
>BRU /BAC:MPBL58SRC/UFD/NOINI/DENS:1600 MS0: SY:
BRU - Starting Tape 1 on MS0:
 
BRU - End of Tape 1 on MS0:
 
BRU - Completed
 
>;
>DMO MS0:/LOCK=UNLOAD
20:25:46  *** MS0:  -- Dismount complete
DMO -- TT0:    dismounted from MS0:    *** Final dismount initiated ***
>;
>TIME
20:25:46 24-MAY-90
>;
>;      We will now create any UFDs that must be created on your disk(s).
>;      You will not see the UFD commands.
>;
>TIME
20:25:46 24-MAY-90
>;
>;
>;      The preparation of the RSX-11M-PLUS kit is now complete.  The next
>;      time this disk is bootstrapped, this dialog will only be repeated
>;      on request.  We will now record the successful installation in the
>;      log file on the new system disk, and either exit if the installation
>;      was done on line, or proceed with the normal startup sequence if the
>;      baseline system was used.
>;
>SET /UIC=[2,54]
>PIP LB:[1,1]KITIDENT.DAT/AP=LB:[2,54]INSTALOG.DAT
>;
>;
>SET /UIC=[200,200]
>;                      PLEASE NOTE
>;
>;      If you have not yet read the system release notes, please do so
>;      now before attempting to perform a SYSGEN or to utilize the new
>;      features of this system.
>;
>;
>;      In order to start the SYSGEN process, type:
>;
>;      >@SYSGEN
>;
>;      When SYSGEN has completed and your generated system is
>;      running, you may wish to edit several DIGITAL-supplied
>;      prototype command and text files to suit your system
>;      and application:
>;
>;      File                    Purpose
>;      ----                    -------
>;      [0,0]RSX11.SYS          An account/password file
>;                              This file does contain privileged accounts.
>;
>;      [1,2]STARTUP.CMD        (This file) Invoked at bootstrap time to
>;                              control bringing up the system.
>;
>;      [1,2]QMGSTART.CMD       Invoked by STARTUP to start up the Queue
>;                              Manager and spooling system.
>;
>;      [1,2]SHUTUP.CMD         Invoked by SHUTUP when taking down the system
>;                              to perform system dependent shutdown tasks.
>;
>;      [1,2]QMGSTOP.CMD        Invoked by SHUTUP to stop the Queue Manager
>;                              and spooling system.
>;
>;      [1,2]LOGIN.TXT          Displayed on user's terminal when logging in.
>;
>;      [1,2]BATCH.TXT          Displayed at the beginning of each batch log
>;                              file.
>;
>;
>ELI /LOG/LIM
>CLI /INIT=DCL/CTRLC/DPR="<15><12>/$ /"
>INS LB:[1,1]RMSRESAB.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBL.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBM.TSK/RON=YES/PAR=GEN
>INS $QMGCLI
>INS $QMGCLI/TASK=...PRI
>INS $QMGCLI/TASK=...SUB
>QUE /START:QMG
>INS $QMGPRT/TASK=PRT.../SLV=NO
>QUE LP0:/CR/NM
>START/ACCOUNTING
>CON ESTAT LP0:
>QUE BAP0:/BATCH
>QUE BAP0:/AS:BATCH
>@ <EOF>
>
>SHO /DEF
DB0:[200,200]  Nonamed  TT0:
Protection UIC:  [200,200]
>


Correr SYSGEN

Ahora que podemos utilizar el sistema de base (antediluviano equivalente a un Pendrive booteable con GNU/Linux). Sin embargo, este no estará optimizado para nuestra configuración de hardware - si siquiera hará uso de toda la memoria emulada ni contará con todos los servicios de dispositivos configurados. 

Para crear una imagen ejecutable final optimizada para nuestra configuración emulada, habremos de correr la utilidad de generación de sistema. Se trata de una serie de comandos que reciden en el UFD [200,200] (el Directorio de Ficheros de Usuario de RSX, similar a un /usr/bin en los similares a UNIX). 

Ya que gracias al comando sho /def anterior vimos que ya estamos situados en UFD [200,200], de modo que podremos el guion SYSGEN.CMD introduciendo @sysgen, de la siguiente manera:

>@SYSGEN
>;
>; RSX-11M-PLUS  V4.2  BL58  SYSGEN
>;
>; COPYRIGHT (c) 1988
>; DIGITAL EQUIPMENT CORP., MAYNARD MA., 01754
>;
>SET /DPRO=[RWED,RWED,RWE,R]
>;
>; To exit from the SYSGEN procedure at any time, type CTRL/Z.
>;
>; If you are unsure of the answer to a question for which a de-
>; fault answer exists, use the default answer.
>;
>;
>;
>;===================================================
>;  Choosing SYSGEN Options      24-MAY-90 at 20:26
>;===================================================
>;
>;
>;
>; Every question is preceded by a question number (for example SU010)
>; which you can use to find the explanation of the question in the
>; RSX-11M-PLUS System Generation and Installation Guide.
>;
>; An explanation of every question is also available by pressing
>; the ESC key (or the ALTMODE key) in response to the question.
>;
>; If you are unfamiliar with the SYSGEN procedure, the explanation of
>; each question can be printed automatically before the question.
>;
>* SU010   Do you always want the explanation printed? [Y/N D:N]: ? [Presionar Intro]
>;
>; SYSGEN always creates saved answer files containing your responses
>; to the SYSGEN questions:
>;
>;    SYSGENSA1.CMD     Setup questions, Executive options
>;    SYSGENSA2.CMD     Peripheral configuration
>;    SYSGENSA3.CMD     Nonprivileged task builds
>;
>; You should perform a PREPGEN first to create saved answer files, and
>; then perform a SYSGEN, specifying those saved answer files as input
>; to the Executive, peripheral, and nonprivileged task build sections.
>;
>* SU020   Do you want to use a saved answer file as input for
>*         the Executive options? [Y/N D:N]: ? [Presionar Intro]
>;
>* SU040   Do you want to use a saved answer file as input for
>*         the peripheral configuration? [Y/N D:N]: ? [Presionar Intro]
>;
>* SU060   Do you want to use a saved answer file as input for
>*         the nonprivileged task builds? [Y/N D:N]: ? [Presionar Intro]
>;
>* SU080   Do you want to do a PREPGEN? [Y/N D:N]: ? [Presionar Intro]
>;
>* SU090   Enter the name of the disk drive containing your
>*         target system disk [ddnn:] [S R:2-5]: DB0:
>;
>ASN DB0:=IN:
>ASN DB0:=OU:
>ASN DB0:=LB:
>ASN DB0:=WK:
>ASN DB0:=TK:
>ASN DB0:=BC:
>ASN DB0:=LI:
>ASN DB0:=OB:
>ASN DB0:=EX:
>ASN DB0:=MP:
>;
>* SU100   Do you want to run Autoconfigure on the host system
>*         hardware? [Y/N D:N]: Y

La función Autoconfigure descubrirá el CSR y el vector de la mayoría de los dispositivos emulados por nosotros. Estos sólo estaban disponibles en las últimas versiones de RSX.

>;
>; Running Autoconfigure:
>;
>INS $ACF
>ACF
>INS $ACO
>ACO SHOW
Processor Type:  11/84          Memory Size:  1024. Kw
 
Options:
 
        Floating Point Processor (FP11)
        Extended Instruction Set (EIS)
        Extended (22-Bit) Addressing
        Cache Memory
 
Name    Vector     CSR      Unit    Type      Remark
RHA      254      176700
                             0      RP04
                             1      RP04
DLA      160      174400
                             0      RL02
                             1      RL02
                             2      RL01
                             3      RL01
MSA      224      172522
DYA      264      177170
YLA      060      177560
 
>ACO SYSGEN
>;
>* SU110   Do you want to override the Autoconfigure results? [Y/N D:N]: 
>;
>; You can:
>;
>;    o  do a complete SYSGEN
>;
>;    o  continue a previous SYSGEN from where you left off
>;
>;    o  do an individual section of SYSGEN
>;
>;
>* SU120   Do you want to do a complete SYSGEN? [Y/N D:Y]: 
>;
>INS [3,54]MAC/TASK=MACT0
>INS [3,54]PIP/TASK=PIPT0
>INS [3,54]LBR/TASK=LBRT0
>INS [3,54]TKB/TASK=TKBT0
>INS [3,54]VMR/TASK=VMRT0
>;
>;
>;
>;======================================================
>;  Choosing Executive Options      24-MAY-90 at 20:27
>;======================================================
>;
>;
>;
>; The answers to the questions in this section are put in the saved
>; answer file [200,200]SYSGENSA1.CMD.
>;
>; Enter a comment for inclusion in the SYSGENSA1 saved answer file.
>; The comment may contain more than one line.  The "V" in the right
>; margin below marks the maximum line length.  When you are done,
>; press RETURN in response to the prompt.
>;                                                                             V
>* Comment [S R:0.-55.]: rsx de peron
>* Comment [S R:0.-55.]:
>;
>* CE020   Do you want the Full-functionality Executive? [Y/N D:Y]: [Presionar Intro]

Es recomendable escoger la opción por defecto, a no ser que - al estilo RSTS/E - se deseen responder muchísimas interrogantes crípticas.

>;
>* CE120   Do you want support for communications products
>*         (such as DECnet, PSI, and LAT)? [Y/N D:N]: Y
>;
>* CE130   What is the system name? [S R:0-6 D:"RSXMPL"]: RSX1
>;
>* CE264   Do you want IP11 industrial I/O subsystem support? [Y/N D:N]: [Presionar Intro]
>;
>* CE270   Do you want to include XDT? [Y/N D:N]: [Presionar Intro]
>;
>* CE280   Enter the crash notification device CSR
>*         address [O R:160000-177700 D:177564]: [Presionar Intro]
>;
>; Note:  Enter both the device and the logical unit number.
>;        For example, MM0: or DL1:.
>;
>; Note:  Enter XX: if you desire loadable DU:, DL:, MU:, MS: or MM:
>;        crash driver support.
>;
>* CE290   On what device and unit do you want crash dumps
>*         to be written? [S R:2-6]: DL0:

Cuando RSX se cuelgue, se detendrá inmediatamente y solicitará cargar un paquete de disco virgen en el dispositivo. Una vez que se cargue el pack y se ponga la CPU a correr nuevamente (debemos ingresar cont en el prompt sim> de simh) ,  escribirá un volcado de núcleo en dicho dispositivo.

>;
>* CE330   Is your system clock programmable (KW11-P)? [Y/N D:N]: [Presionar Intro]
>;
>* CE350   Is your line frequency 50 Hz? [Y/N D:N]: Y
>;
>;
>;
>;=============================================================
>;  Choosing Peripheral Configuration      24-MAY-90 at 20:28
>;=============================================================
>;
>;
>;
>; The answers to the questions in this section are put in the saved
>; answer file [200,200]SYSGENSA2.CMD.
>;
>; Enter a comment for inclusion in the SYSGENSA2 saved answer file.
>; The comment may contain more than one line.  The "V" in the right
>; margin below marks the maximum line length.  When you are done,
>; press RETURN in response to the prompt.
>;                                                                             V
>* Comment [S R:0.-55.]: Test system for Simh
>* Comment [S R:0.-55.]:
>;
>;
>;   DB:    controllers: RH11, RH70     devices: RP04, RP05, RP06
>;
>;                        RH Configuration
>;
>;                      Physical Unit Number
>;
>;      0       1       2       3       4       5       6       7
>;
>; RHA  DB0:    DB1:
>;
>;
>;
>;
>;   DL:    controllers: RL11, RLV12    devices: RL01, RL02
>;
>;                        DL Configuration
>;
>;                      Physical Unit Number
>;
>;      0       1       2       3       4       5       6       7
>;
>; DLA  DL0:    DL1:    DL2:    DL3:
>;
>;
>;
>;
>;   CR:    controllers: CM11, CR11
>;
>* CP4004  How many CM/CR11 card readers do you have? [O D:0]: [Presionar Intro]
>;
>;
>;   MS:    controllers: TS11, TU80, TSV05, TK25
>;
>;
>;   DY:    controller:  RX211, RXV21   device:  RX02
>;
>;
>;   LA:    controller:  LPA11
>;
>* CP6204  How many LPA11 lab subsystems do you have? [D R:0.-16. D:0.]: [Presionar Intro]
>;
>;
>;   TT:    controllers: DL11, DLV11    controller mnemonic: YL
>;
>* CP6832  Enter terminal type for YLA [S R:4-6 D:"LA120"]: VT100
>;
>;
>;   TT:    controller:  DJ11           controller mnemonic: YJ
>;
>* CP7204  Enter number of DJ11 asynchronous line
>*         multiplexers [D R:0.-16. D:0.]: [Presionar Intro]
>;
>;
>* CP7604  Do you have any intercomputer communication devices? [Y/N D:N]: [Presionar Intro]

Asegúrese de seleccionar no a esta pregunta si tiene pensado correr DECnete debido a que los dispositivos de red no pueden compartirse entre el controlador de RSX y el controlador DECnet.

>;
>;
>; Enter device mnemonics for any user-supplied drivers.  The driver
>; source files must reside in [11,10] and be named ddDRV.MAC and
>; ddTAB.MAC where dd is the device mnemonic.
>;
>; You may enter the mnemonics on more than one line.  When you have
>; listed all the drivers, press RETURN when asked for the device
>; mnemonic.
>;
>; The device mnemonic must not include a colon.
>;
>* CP9604  Enter device mnemonics for user-supplied drivers [S]: [Presionar Intro]
>;
>;
>; The highest vector among the devices you specified in this SYSGEN
>; is 374(octal).  This is the default response for this question.
>;
>* CP9632  What is the highest interrupt vector
>*         address? [O R:374-774 D:374]: [Presionar Intro]
>;
>;
>;
>;================================================================
>;  Assembling the Executive and Drivers      24-MAY-90 at 23:30
>;================================================================
>;
>;
>;
>; The answers to the questions in this section are put in the saved
>; answer file [200,200]SYSGENSA1.CMD.
>;
>PIP RSXMC3.MAC=RSXMC1.MAC,RSXMC2.MAC
>PIP RSXMC.MAC=RSXMC3.MAC,RSXMC0.MAC
>;
>SET /UIC=[1,24]
>PIP [11,10]/NV=[200,200]RSXMC.MAC
>PIP [11,10]/NV=[200,200]SYSTB.MAC
>PIP [11,24]/NV=[200,200]RSXASM.CMD
>PIP [11,24]/NV=[200,200]DRIVERS.ASM
>;
>;
>* AE010   Do you want assembly listings of the Executive and
>*         drivers? [Y/N D:N]: [Presionar Intro]
>;
>ASN NL:=LS:
>;
>;
>* AE030   Do you wish to pause to edit any files before
>*         assembling? [Y/N D:N]: [Presionar Intro]
>;
>SET /UIC=[11,24]
>;
>PIP *.OBJ;*/DE/NM,*.TTY;*
>;
>TIME
23:30:52 24-MAY-90
>;
>MAC @RSXASM
>;
>TIME
23:31:48 24-MAY-90
>;
>MAC @DRIVERS.ASM
>;
>TIME
23:32:31 24-MAY-90
>;
>PIP RSX11M.OBS=*.OBJ
>PIP TTDRV.OBS=*.TTY
>;
>SET /UIC=[200,200]
>PIP /NV=[11,10]RSXMC.MAC
>;
>SET /UIC=[1,24]
>PIP RSXBLD.CMD/PU/NM
>PIP RSX11M.OLB;*/DE/NM
>PIP [200,200]RSXMC.MAC/PU/NM
>;
>LBR RSX11M/CR:256.::256./-EP=[11,24]RSX11M.OBS
>PIP [11,24]RSX11M.OBS;*,*.OBJ;*/DE
>;
>LBR TTDRV/CR:40.:392.:128.=[11,24]TTDRV.OBS
>PIP [11,24]TTDRV.OBS;*,*.TTY;*/DE
>SET /UIC=[200,200]
>;
>;
>;
>;==============================================================
>;  Building the Executive and Drivers      24-MAY-90 at 23:32
>;==============================================================
>;
>;
>;
>; The answers to the questions in this section are put in the saved
>; answer file [200,200]SYSGENSA1.CMD.
>;
>;
>; Allocate space to be used later for the system image file.
>;
>SET /UIC=[1,54]
>PIP RSX11M.TMP/CO/BL:1026.=NL:
>;
>SET /UIC=[200,200]
>;
>SET /UIC=[1,24]
>SET /UIC=[200,200]
>SET /UIC=[1,54]
>PIP SYSVMR.CMD=[200,200]SYSVMR.CMD,VMRTTY.CMD
>;
>SET /UIC=[200,200]
>;
>* BE030   Do you want to pause to edit any files before
>*         task-building? [Y/N D:N]: [Presionar Intro]
>;
>SET /UIC=[1,24]
>PIP [1,24]/NV/NM=[200,200]RSXBLD.CMD,RSX11M,DSP11M,LDR11M
>PIP [1,24]/NV=[200,200]DIR11M.CMD,DR211M,DIRCOM,DR2COM,DIR
>PIP [1,24]/NV=[200,200]DR311M.CMD,DR411M,DR3COM,DR4COM
>PIP [1,24]/NV=[200,200]VEC11M.CMD,DCM11M,VECCOM
>;
>TIME
23:33:39 24-MAY-90
>;
>TKB @RSXBLD
>;
>TIME
23:33:53 24-MAY-90
>;
>TKB @[200,200]DRIVERS.BLD
>;
>TIME
23:33:56 24-MAY-90
>SET /UIC=[200,200]
>;
>;
>;
>;=========================================================
>;  Building the Privileged Task      24-MAY-90 at 23:33
>;=========================================================
>;
>;
>;
>; The answers to the questions in this section are put in the saved
>; answer file [200,200]SYSGENSA1.CMD.
>;
>;
>* BP040   Do you want the maps of the privileged tasks? [Y/N D:N]: [Presionar Intro]
>;
>ASN NL:=MP:
>;
>SET /UIC=[1,24]
>;
>TIME
23:34:00 24-MAY-90
>;
>TKB @SAVBLD
>;
>TIME
23:34:02 24-MAY-90
>;
>ASN LB:=OU:
>SET /UIC=[200,200]
>;
>;
>;
>;============================================================
>;  Rebuilding Supplied System Tasks      24-MAY-90 at 23:34
>;============================================================
>;
>;
>;
>; The answers to the questions in this section are put in the saved
>; answer file [200,200]SYSGENSA3.CMD.
>;
>;
>* BN010   Do you want to rebuild any system tasks? [Y/N D:N]: [Presionar Intro]
>;
>;
>;
>;==========================================================
>;  Creating the System Image File      24-MAY-90 at 23:34
>;==========================================================
>;
>;
>SET /UIC=[1,54]
>;
>PIP RSX11M.TMP;*/DE/NM
>;
>PIP RSX11M.SYS/CO/NV/BL:1026.=RSX11M.TSK
>;
>ASN LB:=SY:
>VMR @SYSVMR
 
Loading Executive data space
Data space loading completed
VMR -- *DIAG*-Installed tasks or commons may no longer fit in partition
SET /TOP=SYSPAR:-*
VMR -- *DIAG*-Loadable driver larger than 4K
LOA TT:
VMR -- *DIAG*-Installed tasks or commons may no longer fit in partition
SET /TOP=DRVPAR:-*
SECPOL 117734 00172000 00100000  SEC POOL
SYSPAR 117670 00272000 00165300  MAIN
       117624 00272000 00111500  RO COM !DIR11M!
       117434 00403500 00005200  TASK   [...LDR]
       117230 00410700 00033100  TASK   [MCR...]
       117024 00444000 00010100  TASK   [TKTN  ]
       116620 00454100 00003200  TASK   [SHF...]
DRVPAR 116540 00457300 00133100  MAIN
       116474 00457300 00006600  RO COM !TTEXT !
(...)
GEN    113010 00612400 07165400  MAIN
       112744 00612400 00002000  RO COM !DYCOM !
...LDR 12.01  117500  SYSPAR 248. 00005200 LB0:-00143315 FIXED
TKTN   07.00  117070  SYSPAR 248. 00010100 LB0:-00055302 FIXED
(...)
NL0:                    OFL     DRIVER
POOL=1200:13510.:13510.:1720
>SET /UIC=[200,200]
>;
>REM MACT0
>REM PIPT0
>REM LBRT0
>REM TKBT0
>REM VMRT0
>;
>; End of SYSGEN
>;
>TIME
23:34:13 24-MAY-90
>;
>ASN =
>;
>@ <EOF>
>


Bootear el nuevo sistema

Ahora para bootear el sistema que acabamos de instalar, como primer medida debemos guardar la nueva imagen ejecutable y escribir el bloque de arranque.

>BOOT [1,54]RSX11M
RSX-11M-PLUS V4.2   BL58
 
 
>
 SAV/WB
RSX-11M-PLUS V4.2  BL58   1024.KW  System:"RSX1  "
>RED DB:=SY:
>RED DB:=LB:
>RED DB:=SP:
>MOU DB:"RSX11MPBL58"
>@DB:[1,2]STARTUP
>;                      PLEASE NOTE
>;
>;      If you have not yet read the system release notes, please do so
>;      now before attempting to perform a SYSGEN or to utilize the new
>;      features of this system.
>;
>;
>* Please enter time and date (HH:MM DD-MMM-YY) [S]: 23:37 24-MAY-90
>TIME 23:37 24-MAY-90
>ACS SY:/BLKS=1024.
>CON ONLINE ALL
>ELI /LOG/LIM
>CLI /INIT=DCL/CTRLC/DPR="<15><12>/$ /"
>INS LB:[1,1]RMSRESAB.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBL.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBM.TSK/RON=YES/PAR=GEN
>INS $QMGCLI
>INS $QMGCLI/TASK=...PRI
>INS $QMGCLI/TASK=...SUB
>QUE /START:QMG
>INS $QMGPRT/TASK=PRT.../SLV=NO
>QUE LP0:/CR/NM
>START/ACCOUNTING
>CON ESTAT LP0:
>QUE BAP0:/BATCH
>QUE BAP0:/AS:BATCH
>@ <EOF>
>BYE
Have a Good Evening
24-MAY-90 23:37 TT0:  logged off RSX1
>
>HELLO
Account or name: SYSTEM
Password: SYSTEM
 
RSX-11M-PLUS V4.2  BL58   [1,54] System     RSX1
24-MAY-90 23:37  Logged on Terminal TT0:  as SYS1
 
Good Evening
 
 
        *****************************************************************
        *                                                               *
        *                    Welcome to RSX-11M-PLUS                    *
        *                                                               *
        *                  Version 4.2  Base level 58                   *
        *                This is file LB:[1,2]LOGIN.TXT                 *
        *                                                               *
        *****************************************************************

Ya deberíamos poder ver los dispositivos instalados virtualmente:

>SHOW DEV
CO0:     TT0: Loaded
TT0:     [1,1]       [1,1] - Logged in  Loaded
VT0:     Loaded
VT1:     Loaded
RD0:     Loaded
DB0:     Public Mounted Loaded Label=RSX11MPBL58 Type=RP04
         Seek_Optimization=Nearest:10. Overlapped_Seeks
 
DB1:     Loaded Type=RP04
         Seek_Optimization=Nearest:10. Overlapped_Seeks
 
DL0:     Loaded Type=RL02
         Seek_Optimization=Nearest:10.
 
DL1:     Loaded Type=RL02
         Seek_Optimization=Nearest:10.
 
DL2:     Loaded Type=RL01
         Seek_Optimization=Nearest:10.
 
DL3:     Loaded Type=RL01
         Seek_Optimization=Nearest:10.
 
MU0:     Loaded Type=TK50
MS0:     Loaded Type=TS11
DY0:     Loaded Type=RX02
DY1:     Loaded Type=RX02
NL0:     Loaded
TI0:
CL0:     TT0:
SP0:     DB0:
LB0:     DB0:
SY0:     DB0:
>

Podremos entender su uso fácilmente a través del manual correspondiente o de un video instructivo:

Siguiendo estas instrucciones es muy simple hacer peronismo, porque es implementar software propugnado el amor entre todos, es hacer prevalecer los valores de la GPLv3 sobre los materiales, es hablar de justicia y programarla; es, en otras palabras, hacer el bien en todas las CPUs.

jueves, 17 de marzo de 2022

¿Cómo utilizo TOPS-20 "TWENEX"?

Tutorial de TWENEX

Indudablemente acceder remotamente a un sistema operativo nos salva de tener que instalarlo en nuestro propia máquina. Por tanto, os instruiré gracuas a las facilidades del Proyecto TWENBX.ORG. Indudablemente que será de suma utilidad del Manual de Usuario de TOPS-20.

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: 

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 usar KJOB para salir del sistema TWENEX.

Podremos solicitar la creación de una cuenta usuario registrado de TWENEX en http://www.twenex.org/mkacct/, proveyendo el Nombre de Usuario deseado (llamado "LOGIN") - una casilla de correo electrónico válida - y un nombre completo. Recibirás un correo electrónico indicando el alta de tu LOGIN, y te será proporcionada una contraseña pasavante. Una vez cumplimentado esto, al acceder a TWENEX.ORG y recibir el prompt @ podremos indicarlos.

Para cambiar la contraseña pasavante provista por una contraseña propia habrán de utilizar el comando
SET DIRECTORY PASSWORD <LOGIN>

…donde LOGIN habrá de ser reemplazado por tu nombre de usuario (debes conservar el uso de <>). Deben evitarse letras acentuadas, los espacios y y eñes en la contraseña.

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 usuario de TOPS-20 se llama EXEC. Al arrancar TOPS-20, este correrá ficheros de autoejecución localizados en vuestro directorio de usuario. El fichero básico es LOGIN.CMD.

El prompt del sistema TWENEX estará configurado como:

[KANKAN] PUBLIC:<~>@ 

Los comandos más simples no son interactivos; se trata de programas que entregan un resultado directo en la terminal. Veamos algunos:

En TOPS-20 podrá utilizarse el programa TYPE que cumple similar función al cat de GNU: presentar en pantalla el contenido de un fichero. Por ejemplo:

TYPE LOGIN.CMD

mostrará 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. Este podría ser el siguiente:

Como TOPS-20 es un sistema multiusuario a tiempo compartido y en línea, podrás usar SYSTAT para ver quién se encuentra conectado.

TWENEX podría llenar la pantalla de vuestra terminal con la información solicitada. Al llenar la pantalla, podréis 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 era posible cancelarlo. De momento la dejaremos así, luego podremos alterar este proceder según convenga.

Podremos emplear el comando DAYTIME para ver la fecha del Reloj de Tiempo Real (RTC).

Autocompletado con Esc

EXEC ha sido influyente por contar con reconocimiento de tecla Escape, similar a la tecla Tabs en Bash. Podrán utilizarla para autocompletar o presentar solicitudes (“noise words”) de los comandos parcialmente escritos. Imaginemos desear ingresar el extenso comando INFORMATION (ABOUT) MONITOR-STATISTICS, para lo cual podríamos escribir:

infor tecla ESCAPE mon tecla ESCAPE

…EXEC terminaría "de tipear lo necesario". Tras comprobar los propuesto, produciremos la introducción de la orden con la tecla Intro

Ayuda con ?

Otra opción recordada de EXEC fue su 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 disponibles para el comando TWENEX propuesto.

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 palabras de guía, y se hayan incorporadas en el intérprete para producir su autocompletado presionando la tecla Escape.

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

TER [ESCAPE] page [ESCAPE] ?

Será adecuado conocer el equivalente a carpetas o directorios: la “Estructura” de TOPS-20. Dispongamos de comandos no interactivos 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 contaremos con una opción más completa, VDIR o VDIRECTORY. Podrás utilizar comodines * como atajos para abarcar “todo”. Si decides introducir el comando:

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

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

Trabajos en TOPS-20

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. 

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 virtualmente la terminal teletipo simulada de un trabajo, y podríamos conectarla a otro trabajo, incluso de otro usuario si sabemos su contraseña. Para desconectar la terminal emplearemos Ctrl+c y luego el comando DETACH.

Esto deja el trabajo activo pero le “desconecta” la terminal, como si de un conmutador telefónico antiguo se tratara. Esto te permitirá iniciar un trabajo distinto en una sub-instancia de EXEC.

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. Por ejemplo:

ATTACH usuario 32

...“reconectará” la terminal para “controlar” lo que hace el usuario peron con el trabajo número 32.

Este proceder será útil para procesos largos (como compilaciones), donde podremos iniciar el proceso, DETACH la terminal, y volver luego cuando la termine, o hacer algo mientras ello sucede. 

Podrás utilizar el comando KILLJOB y el número de trabajo para eliminar un trabajo suelto.

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

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. El prompt del subsistema de correo es:

MM>
Introduce el comando MAIL para redactar un mensaje. 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

El funcionamiento es autoexplicativo. El editor de líneas del correo nos permitirá escribirlo, y cesar la edición con Ctrl+z.


 

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.

Leer el correo

En el subsistema MM, usa el comando HEADERS ALL para ver todos los correos recibidos en tu bandeja de entrada, y usa el comando TYPE seguido por el número del correo que desees leer, o bien usa TYPE NEW para leer los correos nuevos. 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.

Editores en TWENEX

En TWENEX podrán encontrarse múltiples editores de texto. El editor por defecto es Emacs, pero también tendremos a Vi, y los más antiguos SOS y TECO.

Antes de utilizar el editor visual vi habrán de activar la terminal en modo ANSI con el comando

TERM ANSI

y luego ejecutar el editor con

vi

SOS es el editor de líneas Son Of Stopgap. Para obtener ayuda de un comando tipea “H,<nombre del comando>”. Por ejemplo, la información en todos los comandos de alteración está disponible ingresando “H,A”.

Comando Resultado
A (Alter) Edición entrelíneas
B (Begin) Va al principio del fichero
BP(Begin Page) GVa al principio de la pág
C (Copy) Copia texto
CC(Co-Copy) Copia de coedición
CT(Co-Transfer) Mueve texto de coedición
CX(Co-edit) Comienza/conmuta coedición
D (Delete) Borra texto
E (Exit) Sale del editor
F (Find) Busca una cadena
G (Go) Sale y corre un programa
H (Help) Presenta la ayuda
I (Insert) Inserta nuevo texto
J (Join) Une líneas
JC(Justify Centered) Centra el texto
JL(Justify Left) Justif izq
JR(Justify Right) Justif der
JU(Justify) Fully justificado letras
JW(Justify Word) Justifica palabras
K (Kill) Borra marcas de pág
L (List) Lista las líneas en LPT:
M (Mark) Inserta marca de pág
N (Number) Renumera líneas
NA(Number And open) Abre un hoyo
NF(Number file) Renumera fichero
NP(number page) Renumera pág
O (Output) Guarda la salida a un fichero
P (Print) Presenta las líneas en la TTY
R (Replace) Borra e inserta
S (Substitute) Busca y reemplaza
T (Transfer) Mueve texto
VL(inVert Lower) Convierte a min
VU(inVert Upper) Convierte a may
VV(inVert inVert) Conmuta may/min
W (World) Salva el mundo (fichero)
X (eXtend) Agrega al final de la línea
; (comment) Resto de línea ignorado
@ (indirect) Ejecuta desde un fichero
= (give) Imprime valores de parámetros
/ (set) Establece valores
. (move) Mueve el puntero de línea

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.

Programar en TOPS-20

TWENEX era recordado por sus facilidades de programación, de modo que existen muchos subsistemas pensados para compilar y programar.

Macro-10 era el ensamblador nativo de la DEC PDP-10, y TWENEX naturalmente contaba con él.

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

emacs vp.mac

Pega el código fuente:

    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>

Y guárdalo con Ctrl+x, Cttrl+s, y sal con Ctrl+x,Ctrl+z. Compila el código con:

compile vpc

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

load vpc

Ejecútalo con

vpc

C es el lenguaje típico portable. Podrán escribir un programa llamado llamada vp.c con el siguiente código fuente:

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

Lo compilamos con:

compile vp.c

y lo cargamos con con

save vp

Una vez finalizado, lo corremos con:

vp

LISP era una serie de dialectos de lenguajes de programación concebidos para tareas de desarrollo de inteligencia artificial en el MIT.

MACLisp

Para usar MACLispP:

@DEFINE MACLISP: PS:<MACLISP>
@ maclisp:maclisp

InterLISP

@ define interlisp: ps:<interlisp>
@ interlisp:lisp

C Lisp

@ <clisp>clisp
Uppsala Common Lisp, Version of 15-Dec-1987, (c) 1985, C. Hedrick
CL>(+ 2 2)
4
CL>(quit)

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

Nos logueamos 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 open para conectarnos a otros servidores FTP anónimos.

Habremos de tener 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. 

Podremos también participar de clases en video en el canal de Twich de SDF, o bien ver los videos de las bootcamp (en inglés).

Sin duda, aprender TWENEX nos transportará al pasado y al verdadero súmun de la cultura hacker del Justicialismo.

 

Por eso, compañeros, si yo hubiera de fijar el rumbo en la ejecución de las tareas docentes de esta casa, solamente daría un directiva de muy pocas palabras: tenemos que formar, primero hombres buenos y del pueblo. En segundo lugar, formar trabajadores, sobre todas las cosas. Y, en tercer lugar, formar hombres patriotas, que sueñen con una Nueva Argentina en manos del pueblo, como instrumento del pueblo para lograr la grandeza de la Patria y la felicidad de ese mismo pueblo.

Si formáramos un nuevo grupo de intelectuales ignorantes, de los que tenemos tantos, que simulan saber para aprovechar de los que saben menos, no habríamos hecho un gran progreso sobre lo que tenemos.

Lo que necesitamos son hombres leales y sinceros, que sientan el trabajo, que se sientan orgullosos de la dignidad que el trabajo arrima a los hombres, y que, sobre todas las cosas, sean capaces de hacer, aunque no sean capaces de decir.