archivo

Archivo de la etiqueta: net

Autor: Salvador Merino, 18/02/2010

Badaman me comento que mi experiencia en instalar una tarjeta red bajo MS-DOS en un PC con un AMD K5 a 90 Mhz, 16 Mbytes RAM, y disco duro de 1 Gb, podría interesar a usuarios cuya lengua principal sea el Español (o Castellano).

Mi historia comienza cuando decido ensamblar dos PCs, uno para MS-DOS 6.22 (Caja AT, micro AMD K5 a 90 Mhz, y 16 Mbytes RAM), y el otro para LINUX Debian (Caja ATX, micro AMD K6 a 300 Mhz, y 64 Mbytes RAM), a partir de bastante chatarra, que incluía 2 tarjetas de red con microchip de Realtek, pero fabricadas por terceras empresas, y como provenían de la chatarra, o material de desecho, de un colegio (de enseñanza privado (no pública)) suministrada gratis por el conserje, pues no tenían drivers.

Con Linux no existe ningún problema para utilizar una tarjeta red, porque reconoce prácticamente casi todas, pero con MS-DOS la cosa cambia, porque mi amigo, el conserje del colegio, lo primero que dijo, fue que MS-DOS no podía utilizar la tarjeta de red si no tenia instalado WINDOWS. Aunque yo estaba seguro que era posible utilizar una de esas tarjetas de red bajo MS-DOS.

El primer paso para instalar una tarjeta de red bajo MS-DOS fue buscar en Internet un driver, y empecé, como es natural, por la página del fabricante del microchip principal, que usaba la tarjeta, que era Realtek (aunque las tarjetas habían sido fabricadas, o distribuidas, por Ovislink, y Genius). Una vez encontrado el driver para MS-DOS más reciente en la web del fabricante Realtek, llegaba la hora de instalarlo, pero cuando descomprimo el fichero ZIP, y veo que no hay instrucciones, y más que el driver para DOS parece un driver para WINDOWS 3.1, solamente me pregunto, ¿y esto cómo se instala?, porque aquí falta algo. (Tan cierto como que lo que faltaba, lo encontré en la página web http://sourceforge.net/apps/mediawiki/freedos/index.php?title=Networking_FreeDOS_-_History_of_DOS_networking)

Una vez leída la información en inglés encontrada en esa página llamada “NETWORKING FREEDOS – History of DOS Networking”, me puse manos a la obra, porque esto ya es otra cosa (Lo que se dice “está chupado“). Lo primero que necesitaba eran los siguientes ficheros, y que debemos guardar en nuestro disco duro en un subdirectorio (en mi caso particular es NET):

  • PROTMAN.DOS, PROTMAN.EXE, y NETBIND.EXE, que son parte de MS Client 3.0, pero existe licencia de libre uso para uso interno.
  • DIS_PKT.DOS, que es el “Packet Driver to NDIS Converter”, que es de dominio público, y fue escrito por el Prof. Joe R. Doupnik (Utah State University) y Dan Lanciani (Harvard University).
  • En mi caso particular, RTSND.DOS, que es el driver MAC suministrado por Realtek para el micro chip (o interface Network) RTL 8139.
  • También es necesario escribir un fichero llamado PROTOCOL.INI, que en mi caso particular contiene:
[protman]
DriverName=PROTMAN$

[RTSND]
DriverName=RTSND$

[PKTDRV]
drivername=PKTDRV$
bindings=RTSND
intvec=0x60

Lo único que hay que cambiar es la cadena “RTSND” por el nombre del driver MAC que vamos a utilizar.

Ya solamente nos queda la instalación que consiste en añadir unas lineas a los ficheros AUTOEXEC.BAT y CONFIG.SYS, quedando, en mi caso particular, el fichero AUTOEXEC.BAT en lo siguiente:

LH C:\DOS\SMARTDRV.EXE /X
@ECHO OFF
PROMPT $p$g
PATH C:\DOS;C:\DRV
SET TEMP=C:\DOS
MODE CON CODEPAGE PREPARE=((850) C:\DOS\EGA.CPI)
MODE CON CODEPAGE SELECT=850
KEYB SP,,C:\DOS\KEYBOARD.SYS
REM Driver para el lector CR-562/563
LH C:\DRV\MSCDEX.EXE /D:MSCD001 /M:15
LH AMOUSE /1
LH C:\IOMEGA\GUEST.EXE
C:\NET\NETBIND.COM
SET COMSPEC=C:\COMMAND.COM
SET ARACHNETEMP=D:\TEMP
MKDIR D:\TEMP
VER

He añadido la siguiente linea:

C:\NET\NETBIND.COM

En mi caso particular, el fichero CONFIG.SYS queda en lo siguiente:

DEVICE=C:\DOS\SETVER.EXE
DEVICE=C:\DOS\HIMEM.SYS /NUMHANDLES=64
DEVICE=C:\DOS\EMM386.EXE NOEMS
BUFFERS=50,0
LASTDRIVE=Z
FCBS=4,0
DOS=UMB,HIGH
COUNTRY=034,,C:\DOS\COUNTRY.SYS
DEVICE=C:\DOS\DISPLAY.SYS CON=(EGA,,1)
FILES=79
STACKS=18,512
DEVICEHIGH=C:\DOS\RAMDRIVE.SYS 2048 512 512 /E
DEVICEHIGH=C:\DRV\CDMKE.SYS /D:MSCD001 /P:340 /N:1
DEVICEHIGH=C:\NET\PROTMAN.DOS /I:C:\NET
DEVICEHIGH=C:\NET\RTSND.DOS
DEVICEHIGH=C:\NET\DIS_PKT.DOS

He añadido las siguientes lineas:

DEVICEHIGH=C:\NET\PROTMAN.DOS /I:C:\NET
DEVICEHIGH=C:\NET\RTSND.DOS
DEVICEHIGH=C:\NET\DIS_PKT.DOS

Y colorín colorado, este cuento se ha acabado, y el primer programa, que he probado, ha sido el navegador ARACHNE.

Los ficheros podéis obtenerlos en DOS_NET.ZIP

Anuncios

A raíz de la propuesta en un hilo de discusión en zona de pruebas me he decidido a probar la red local entre mis dos QL’s. Hasta ahora ni siquiera lo había intentado, entre otras cosas, por la mala fama (muy extendida por cierto) sobre la funcionalidad de la red local de los QL’s y Spectrum de Sinclair. Por ejemplo, en el manual del Toolkit 2, el propio Tony Tebby dice textualmente “.. si su QL es de una versión anterior al número de serie D14, es altamente posible que el soporte físico de la red no funcione en absoluto …”. Seguro que este tipo de afirmaciones no son gratuitas del señor Tebby. También es cierto que el propio Tebby, textualmente, reconoce más adelante que “… aunque la experiencia reciente ha demostrado que hay más QLs pre-D14 de los supuestos con una puerta de red local que funcina…”.

A pesar que mis QL’s son anteriores a la serie D14, y con la esperanza que se traten de esos “supuestos” QL’s a los que le funciona la puerta de red, empecé a montar y probar una mini-red de 2 QL’s para comprobar en la práctica su funcionalidad y fiabilidad.

Tras buscar el cable correspondiente y conectar los dos QL’s llegó la sorpresa … ¡¡funcionaaaa!!

Es fantástico, he conectado los QL’s en red y va todo a la perfección, tal como dice el manual del Toolkit 2. Hay que decir, que aunque el QDOS original soporta el funcionamiento de una red de QL’s (hasta un máximo de 62), lo hace de una manera muy elemental. El Toolkit 2 añade una serie de facilidades que permiten configurar la red local cómodamente y usar recursos del resto de QL’s conectados de forma muy simple. Con las facilidades del Toolkit 2 puedo poner fácilmente uno o varios de los QL’s como “servidor” y así compartir todas sus unidades de almacenamiento con el resto de QL’s de la red.

Aquí están mis dos QL’s conectados vía red local. El QL 1 (el que se ve en la imagen a la izquierda) tiene dos disqueteras de 1.4 y el RomDisQ de 8 MB, tiene su propio monitor (1084). El QL 2 (el de la derecha) no tiene unidades de almacenamiento externo, está conectado a mi capturadora AverMedia del PC (la calidad de la imagen es pésima, pero viable para hacer pruebas).

Red local 2 QLs

Para activar la red sólo hay que teclear el comando NET x (x es cualquier número entre 1 y 63) en cada QL. En mi caso NET 1 para el primer QL y NET 2 para el segundo QL. A continuación, en el QL que actúa como servidor hay que teclear el comando FSERVE (el QL 1 en mi caso). Estos son los comandos que he empleado en el primero de los QL’s:

NET 1
FSERVE

Como dijimos anteriormente, cada estación deberá tener un número único en la red. Si la estación no tiene recursos que ofrecer al resto y sólo va a utilizar recursos de los demás entonces no hace falta FSERVE.

Ahora, desde el QL 2 puedo ejecutar cualquier programa almacenado en el primer QL, por ejemplo así:

EXEC_W n1_flp1_chess_exe

Como veis, sólo hay que anteponer N con el número de estación a la unidad_fichero que queramos ejecutar.

Aquí vemos, el segundo QL ejecutando el chess almacenado en la unidad RomDisQ del primer QL.

QL 2 ejecutando programa almacenado en QL 1

Según el manual del Toolkit II, el servidor de ficheros permite acceso por parte de otro QL a 10 recursos unidos él, estos recursos pueden ser no sólo dispositivos de fichero (por ejemplo discos), sino también dispositivos en serie puros (modems, impresoras) o ventanas de pantalla del QL. Los servidores de la red deberán ocupar los número de estación entre 1 y 8. Una vez configurado el servidor podemos hacer cosas como las siguientes:

LOAD n1_flp1_osusq_bas 
    - carga el fichero "osusq_bas" del disco 1 de la estación 1 -

OPEN_IN #3, n2_flp2_clientes 
    - abre el archivo "clientes" en el disco 2 de la estación 2 -

OPEN #3, n1_con_200x100a10x10 
    - abre una ventana de 200 x 100 pixeles en la posición 10,10 
       en la estación 1 -

Esto último es especialmente curioso, podemos tener un programa en SuperBASIC que vuelque su salida por la consola de otra estación de la red. En la siguiente imagen vemos la pantalla del QL 2 donde se muestra por una parte el directorio de la unidad RomDisQ del QL 1 y por otra parte una ventana con “Hola mundo” ejecutada por el otro QL (¡el QL de la estación 1!).

Mostrando directorio en red y compartiendo consola

Compartiendo consola (detalle)

El QDOS ejecuta perfectamente en multitarea la salida por consola de un programa y atiende la salida por la misma consola de un programa ejecutado por otra estación de la red. En el ejemplo anterior el volcado del directorio de la estación 1 y la salida de “Hola mundo” (un bucle de 100 iteraciones) fue ejecutado en multitarea.

En una red de QLs con Toolkit II también funcionan los directorios por omisión de programas y de datos. Con una instrucción como esta, tecleada en el QL 2

PROG_USE n1_flp2_MisProgramas

se establece el directorio “MisProgramas” de la unidad flp2_ del QL 1 como directorio por defecto para la ejecución de programas.

Por último, uno de las facilidades más interesante es la posibilidad de “mapear” unidades compartidas de red como si fueran dispositivos nativos del QL. Esto lo hacemos mediante el comando NFS_USE.

Si tecleamos en la estación 2 la siguiente instrucción:

NFS_USE mdv,n1_flp1_,n1_flp2_

hará que, para esta estación (la 2), el dispositivo mdv1_ y mdv2_ sea “mapeado” a las unidades flp1_ y flp2_ de la estación 1. Es decir, podemos simular que estamos accediendo a las unidades microdrive del QL 2 cuando en realidad se está accediendo a las unidades de disquete de la estación 1.

Podemos especificar hasta 8 valores para un dispositivo y además especificar nombre de subdirectorios. Por ejemplo:

NFS_USE mdv,n1_flp1_,n1_flp2_,n2_rom1_juegos_,n2_win1_utils_

Esto hará que la estación donde ejecutamos este comando crea que tiene 4 unidades de microdrive con el siguiente “mapeo”:

mdv1_ = unidad flp1_ en la estación 1
mdv2_ = unidad flp2_ en la estación 1
mdv3_ = directorio "juegos" de la unidad rom1_ en la estación 2
mdv4_ = directorio "utils" de la unidad win1_ en la estación 2

En todas las pruebas que he realizado, la única pega que he observado es la relativa lentitud a la hora de acceder a recursos compartidos, pero en cualquier caso siempre resulta mucho más rápido y fiable que el acceso a unidades de microdrive (yo diría que casi es la velocidad de un disquete).

En conclusión, me he llevado una grata sorpresa con las facilidades que tiene el QL con Toolkit II para la configuración y trabajo en una red de QL’s. Si lo pensamos detenidamente y nos situamos en el año 84/85 ¿qué ordenadores personales ofrecían estas facilidades de serie? … pues muy pocos o ninguno. El QL tuvo carencias importantes en algunos aspectos (el sistema de almacenamiento incorporado por ejemplo) pero se adelantó a su época en otros aspectos, uno de ellos, en su capacidad de trabajo en red incorporado de serie.