Wang 3300

dancresp
Amiga 1200
Amiga 1200
Mensajes: 1393
Registrado: 23 Dic 2008, 17:53
Sistema Favorito: MSX
primer_sistema: ZX81
Primera consola: Atari 2600
Gracias dadas: 3 veces
Gracias recibidas: 20 veces

Wang 3300

Mensajepor dancresp » 12 Dic 2014, 12:02

EL EQUIPO
El Wang 3300 era un sistema modular de propósito general, multitarea y multipuesto (time-sharing), compuesto por una CPU central de 8 bits a la que se pueden conectar hasta 16 terminales tipo maquinas de escribir IBM Selectric modificados, o otros teletipos estándar.

Comercializado en 1971, el Wang 3300 era un sistema de bajo coste para los precios de aquella época, comprendido entre los 14.000$ por un equipo con un terminal hasta los 200.000$ por un equipo con 16 terminales y todos los periféricos opcionales.

La configuración base del Wang 3300 se componía de la CPU, 12 KB de memoria RAM, dos terminales IBM Selectric, una unidad de control de terminales (permite controlar hasta cuatro unidades), almacenamiento en casete, y el intérprete BASIC. Todo por un coste total de 17.550$ de la época, bajando a 15.200$ si se prescindía del casete.

Wang estaba tan segura de la calidad de su sistema que se comprometía a devolver el dinero si en 60 días el cliente no quedaba satisfecho, a excepción de 1.500$ en concepto de configuración e inicialización.

El medio de almacenamiento principal eran las unidades de cinta de papel que incorporaban los propios terminales, pero también se podían usar unidades de cintas de casete de alta velocidad, disquetes de 64 KB o discos de 0.5 MB. Con todo, los primeros usuarios se vieron obligados a usar las cinta de papel. Esto se convirtió en un gran problema ya que cargar el arranque del sistema y el intérprete BASIC desde cinta de papel tardaba en torno a los 40 minutos, a los que había que sumar el tiempo necesario para cargar un programa en BASIC propio.

El WANG 3300 se concibió para competir con los sistemas PDP-8 y la PDP-11, pero fue condenado desde el principio porque el personal de ventas de Wang no estaban formados acerca de la venta de minicomputadoras de propósito general.

Foto-2.jpg
Foto-2.jpg (43.62 KiB) Visto 13108 veces


Información Técnica
- Núcleo del sistema basado en circuitos integrados TTL que conforman un sistema de 8 bits en paralelo.
- Memoria RAM de núcleo magnético ampliable hasta los 64KB, mediante bloques de 4 KB.
- Juego de 72 instrucciones de 2 bytes, 21 de ellas destinadas al acceso a memoria con 9 modos de direccionamiento.
- 6 instrucciones aritméticas en modo binario ó BCD de 4 bits, con resultados de hasta 8 dígitos.
- Canales DMA para el acceso a dispositivos de almacenamiento, con velocidades de hasta 300.000 CPS.
- Reconoce terminales con velocidades de entre 10 y 15 CPS.
- Posibilidad de controlar hasta 128 periféricos.
- Uso de acopladores acústicos para conexiones remotas por línea telefónica.

El panel frontal
Por aquellos tiempos, todo computador debía incorporar un gran número de luces e interruptores en el frontal. A través de ellos se podía cargar un programa desde una fuente externa o consultar y modificar la memoria.

Las distintas luces están agrupadas en seis grupos distintos que indican el estado de los distintos registros disponibles:
- Z : Registro de 8 bits de uso general. Se puede agrupar con “A” para formar un registro de 16 bits.
- A : Registro de 8 bits usado como acumulador, o como par con el registro “Z”.
- S : Registro de 8 bits usado para contener el estado de los 6 flags disponibles.
- C : Junto con el registro B forman un registro de 16 bits usado como contador de programa.
- M : Registro de 8 bits que contiene el último dato leído o enviado a la memoria.

En la parte inferior del panel frontal hay 4 grupos de botones:
- Los botones “80-40-20-10-8-4-2-1” se usan para introducir un valor de 8 bits en formato octal.
- Los botones “B-C-Z-A-S-M-Core” se usa para indicar el registro donde se almacena el valor introducido.
- Los botones “Run-Display-Enter”” establecen el modo de funcionamiento.
- Los botones “Load-Step-ExQ-Go” establecen el modo de ejecución.

Frontal.jpg
Frontal.jpg (43.51 KiB) Visto 13108 veces


Modos de funcionamiento
En modo “Enter” se puede asignar un valor de 8 bits al registro indicado, pulsado el botón correspondiente, excepto cuando se pulsa la tecla “Core”, que escribe el valor en la posición de memoria indicada por el par [B,C] e incrementa el valor de este par en 1 para poder entrar otro valor a continuación. Es una forma sencilla pero farragosa de introducir un programa o valores en la memoria.

En modo “Display”, pulsando la tecla “Enter” podemos consultar mediante el registro “M” el valor de 8 bits de la posición de memoria indicada por el par de registros [B,C]. Cada pulsación de la tecla “Core” incremente en 1 el valor del par [B,C], siendo útil para inspeccionar el contenido de la memoria.

En modo “Run” el sistema queda listo para la ejecución de un programa, usando el par [B,C] como dirección inicial. Los cuatro botones del grupo “Command” determinarán el modo de ejecución del programa:
- El botón “Go” inicia la ejecución del programa.
- El botón “Step” ejecuta el programa paso a paso. Ideal para un proceso de depuración.
- El botón “ExQ” ejecuta una instrucción entrada directamente desde la botonera del panel frontal.
- El botón “Load” no está documentado. Se supone que debería servir para ejecutar un pequeño programa de arranque en algunos modelos.


EL DESARROLLO
En junio de 1968, Wang compró Philip Hankins Incorporated (PHI), un proveedor de servicios de procesamiento de datos en mainframes. Wang estaba interesado en ellos por su experiencia en software, así como el hecho de que eran dueños de un IBM 360/65. Esta potente unidad central jugó un papel importante en el desarrollo del Wang 3300.

El adjunto Develope.jpg ya no está disponible

Izquierda: Computer Room en PHI Computer Services, Inc. donde se usó un simulador de 3300 en un IBM-360-65 para desarrollar software.
Derecha: Joe Klementovich, Product System Supervisor revisando la producción de modelos de 3300.


Después de la adquisición de PHI, Wang se movió rápidamente. En unos pocos meses se iniciaron dos diseños de computadoras destinadas como CPUs de propósito general. Uno de ellos terminó siendo desviado para ser una súper calculadora en lugar de un equipo de bajo costo. Se conoció como la serie 700 de calculadoras programables, un producto tremendamente exitoso e importante para Wang. La otra máquina terminó siendo el Wang 3300.

Publicidad_1.jpg
Publicidad_1.jpg (151.67 KiB) Visto 13108 veces


Si bien el diseño de hardware del 3300 avanzaba, el grupo de software estaba ocupado simulando sus creaciones de software en su sistema IBM 360, a través de un software de simulación de hardware del 3300. Según los comunicados de prensa de Wang de la época, las primeras experiencias de la escritura de código para la máquina simulada condujeron directamente a los cambios en el diseño de hardware del 3300. Además de contar con un intérprete de BASIC, el sistema tenía un ensamblador, un cargador, y el software de diagnóstico. Wang también imaginó una biblioteca de aplicaciones para ejecutar en la máquina, que sería una fuente de ingresos permanente. El gestor de aplicaciones de software fue Bob Kolk, que más tarde se convertiría en el líder del proyecto de la primera generación de la familia 2200.

3300_color.jpg
3300_color.jpg (32.75 KiB) Visto 13108 veces

Foto-4.jpg
Foto-4.jpg (72.01 KiB) Visto 13108 veces

Foto-6.jpg
Foto-6.jpg (41.23 KiB) Visto 13108 veces


EL EMULADOR
Los últimos Wang 3300 desaparecieron antes de 1990, ya que fueron una fuente de problemas para Wang, quien decidió cambiarlos gratuitamente por su sistema Wang MVP 2200. Gracias a los esfuerzos de Steve Witham, que escaneó sus manuales y recuperó el contenido de la cinta de casete de arranque, se ha podido desarrollar este emulador del 3300.

Desarrollado por Jim Battle, el “Emu3300” funciona de forma nativa en el sistema operativo Windows como una aplicación de 32 bits. Ha sido probado para funcionar en Windows XP y Windows 7, usando la biblioteca wxWidgets.

La interfaz del emulador consta de una ventana para controlar el panel frontal de la CPU, además de una ventana más para controlar cada terminal ASR-33 simulada.

Emulator.jpg
Emulator.jpg (126.61 KiB) Visto 13107 veces


El emulador es fiel a la sincronización de la máquina original, lo que significa que cada E/S pasa a 10 caracteres por segundo. Hay que acostumbrarse a escribir lentamente. El carácter de subrayado se utiliza como la tecla de retroceso. Utiliza la barra invertida para cancelar la entrada en la línea actual. ESC interrumpe un programa en ejecución, pero de vez en cuando hace que el intérprete de BASIC se pare al ejecutar una operación ilegal.

Debido a que el creador nunca ha usado un 3300, y que todas las fotos que tiene son en blanco y negro, la reconstrucción de la interfaz gráfica de usuario del panel frontal es en parte un fragmento de su imaginación. Las luces indicadoras parpadean en función de su ciclo de trabajo real, utilizando un filtro de primer orden para modelar la inercia térmica del filamento.

La última y mejor versión del emulador es la v0,6. Mejora sobre la versión anterior, la v0.5, en que utiliza una descripción de vectores SVG para el panel frontal, que es más fiel a la apariencia real de la máquina, y escala mejor con el tamaño de la ventana.

Instalación
Se pueden descargar las 3 versiones disponibles desde: http://www.wang3300.org/emu.html, o se puede usar la versión que adjunto, la v0.3, que contiene únicamente el ejecutable y varios programas del 3300.

Descargar la distribución del emulador v0.3 desde ZdP:
Wang 3300.rar
(506.44 KiB) Descargado 444 veces


En cualquiera instalación usada, el emulador guarda todos los ficheros necesarios en su propia carpeta. No guarda nada en carpetas del sistema y no toca el registro de Windows.

Recomiendo la versión v0.3 porque funciona correctamente con cualquier versión de Windows, ya que con las versiones superiores he detectado distintos problemas en versiones más recientes de Windows o con sistemas de 64 bits.

Cargando el BASIC
Al arrancar el emulador este se queda sin hacer nada. Para ello hay que introducir un programa, y para ello es básico conocer la dirección de memoria donde el programa debe ser cargado. El emulador facilita este proceso en parte, y lo hace más rápido, pero se debe usar el panel frontal.

Para cargar el BASIC hay que seguir los siguientes pasos:
1) En el menú “File”, pulsar en “Load Hex...” y seleccionar el fichero “BASIC_28K.hex”
2) Pulsar el botón “Enter”.
3) Pulsar los botones “40” y “2”.
4) Pulsar el botón “B” para cargar en el par [B,C] la dirección de inicio de carga “4200b”.
5) Pulsar el botón “Run”.
6) Pulsar el botón “Go”.

Con esta secuencia aparecerá en el terminal el mensaje de que el BASIC está listo para ser usado.

El documento “README.txt” explica como cargar y ejecutar otros programas.


3300 BASIC
Aunque el 3300 era un equipo de propósito general, Wang creyó que la mayoría de sus usuarios usarían el BASIC como lenguaje de programación. En ese momento el Dartmouth BASIC ya tenía seis años y una buena reputación por su facilidad de uso.

La primera versión de BASIC lanzado para el 3300 era bastante simple y carecía, entre otras cosas, de variables alfanuméricas. Sin embargo ya admitía el modo de tiempo compartido. Un programa de configuración se ejecutaba al arrancar el sistema para establecer el número de terminales disponibles y la cantidad de memoria asignada a cada uno.

En este BASIC las variables numéricas son en coma flotante de precisión simple, ocupando 5 bytes de memoria. Un byte controla el signo de la mantisa, del exponente, y una magnitud de exponente de seis bits; los otros cuatro bytes contienen ocho dígitos en formato BCD normalizado. El número máximo representable era +/- 9.9999999E + 63. El número distinto de cero más pequeño era +/- 1.0000000E-63. Algunos cálculos intermedios se realizaron con un byte adicional de precisión (dos dígitos decimales) para ayudar a mantener la precisión en el resultado final.

En 1971, Wang lanzó una versión actualizada del BASIC, llamado Extended BASIC, que añadió variables alfanuméricas con nombre de una letra o una letra más un dígito y con una longitud máxima de 18 caracteres. También incluía la declaración MAT para una serie de operaciones con matrices, así como la gestión de ficheros en dispositivos externos. Al ser un intérprete más completo ocupaba más memoria, dejando menos para los usuarios.

Al parecer FORTRAN también fue desarrollado para el 3300, pero hasta hoy no han aparecido documentos o cinta de arranque.

Manual-BASIC.jpg
Manual-BASIC.jpg (72.07 KiB) Visto 13108 veces


Comandos:
LIST
Lista el programa. Opcionalmente se puede indicar el rango inicial, [final].

RUN
Ejecuta el programa borrando las variables de la memoria.

RERUN
Ejecuta el programa sin borrar las variables de la memoria.

START
Borra el programa y las variables de la memoria.

RESTART
Borra el programa de la memoria pero deja las variables.

LOAD
LOAD (cinta), LOAD n (casete), LOAD “NNN” (disco). Carga un programa desde el dispositivo indicado.

SAVE
SAVE (cinta), SAVE n (casete), SAVE “NNN” (disco). Graba el programa en el dispositivo indicado.

Instrucciones:
PRINT
Imprime un texto o valor numérico en el terminal.

TAB
Indica la posición de columna a la instrucción PRINT.

LET
Definir una variable. Su uso es opcional.

DIM
Define una matriz numérica de una o dos dimensiones con un máximo de 255 elementos.

COM
Define variables (como DIM) para compartirlas entre programas. Poner al principio del programa.

FOR / TO / STEP
Inicio de un bucle.

NEXT
Final de un bucle.

GOSUB / RETURN
Salta a la subrutina de la línea indicada, y vuelve con un RETURN.

GO TO / GOTO
Salta a la línea indicada.

IF / THEN
Salta a la línea indicada si se cumple la condición.

INPUT
Introducir uno o más valores en la variable o lista de variables indicada.

STOP
Finaliza la ejecución del programa.

END
Indica el final del programa.

DATA
Introduce una lista de valores numéricos en el programa.

READ
Lee los valores de una lista DATA y almacena el valor en la variable indicada.

RESTORE
Reinicia el contador del siguiente valor a leer de una línea DATA.

DEF
Define una función matemática.

RANDOM
Reinicia el generador de números aleatorios.

TRACE ON / OFF
Inicia o detiene el proceso de depuración de un programa.

Funciones:
SIN, COS, TAN, ATN, EXP, LOG, ABS, SQR, RND, INT, SGN, BOOL, AND, OR

Extended Version:
La versión extendida incorporaba toda una gama de nuevas instrucciones que potenciaban considerablemente este lenguaje.

- STR
- Variables alfanuméricas
- MAT (matrices)
- Juego de instrucciones de acceso a ficheros: #0 = Cinta, #1 ó #2 = Casete, #3 = Disco. Soporta hasta 8 unidades.
- CHAIN, CHAINR
- GOTO ON
- PRINT USING


Espero os guste
Buscando la IP de la W.O.P.R.

Avatar de Usuario
Quest
Atari 1040 STf
Atari 1040 STf
Mensajes: 900
Registrado: 18 Jul 2013, 22:20
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo NES/Clónica
Gracias dadas: 9 veces
Gracias recibidas: 16 veces

Re: Wang 3300

Mensajepor Quest » 12 Dic 2014, 12:20

Muy interesante y completo :)

Propongo que se mueva a Fichas -> Fichas micros

Es una ficha en toda regla :D

Avatar de Usuario
Mastertronic
Atari 1040 STf
Atari 1040 STf
Mensajes: 655
Registrado: 05 Jun 2009, 17:47
Sistema Favorito: Commodore Amiga
primer_sistema: Amstrad CPC
consola_favorita: Nintendo SNES
Primera consola: Nintendo SNES

Re: Wang 3300

Mensajepor Mastertronic » 12 Dic 2014, 13:50

Está muy bien, enhorabuena y gracias por la información.

Me encantan estos ordenadores, tienen la magia de épocas pasadas a las que yo viví. Algún día tengo que probar un emulador de estos.

Conectado
Avatar de Usuario
alt
Amiga 2500
Amiga 2500
Mensajes: 4149
Registrado: 07 Sep 2004, 21:52
Ubicación: madrid
Gracias dadas: 1017 veces
Gracias recibidas: 1734 veces
Contactar:

Re: Wang 3300

Mensajepor alt » 12 Dic 2014, 18:37

Muchas, muchas gracias por el artículo, y apoyo lo que dice Quest: que lo conviertan en ficha :-D

Avatar de Usuario
robcfg
Amiga 2500
Amiga 2500
Mensajes: 2137
Registrado: 07 May 2009, 15:34
Sistema Favorito: Amstrad CPC
primer_sistema: Atari 800XL/600XL
Ubicación: Estocolmo
Gracias dadas: 843 veces
Gracias recibidas: 168 veces
Contactar:

Re: Wang 3300

Mensajepor robcfg » 12 Dic 2014, 18:47

No es por nada, pero esta y la del Acorn System 1 ya estan en fichas :mrgreen:

Avatar de Usuario
marcos64
Amiga 1200
Amiga 1200
Mensajes: 1376
Registrado: 03 Sep 2011, 07:53
Gracias dadas: 59 veces
Gracias recibidas: 32 veces

Re: Wang 3300

Mensajepor marcos64 » 13 Dic 2014, 12:15

Buen trabajo e interesante lectura.

Parece increible que fueran capaces de sacar un rendimiento a algo tan primitivo. Aunque para alguien de mi edad me parece increible que las cosas se hicieran usando una regla de calculo :D

Lo que es una pena es que la inmensa mayoria de programas que se desarollaron para sistemas como este, y muchos otros, me temo que se hayan perdido para siempre :(
http://marcos64.orgfree.com/
Actualizacion 11/6/2015: Añadida Load'N'Run numero 3.

Luna
Amiga 1200
Amiga 1200
Mensajes: 1974
Registrado: 01 Jun 2013, 16:21
Sistema Favorito: PC
primer_sistema: ZX81
consola_favorita: Sega Saturn
Primera consola: Atari 2600
Ubicación: Republica de catalunya
Gracias dadas: 30 veces
Gracias recibidas: 28 veces
Contactar:

Re: Wang 3300

Mensajepor Luna » 13 Dic 2014, 16:33

más de 2000$ por un reproductor de cassette? Teniendo en cuenta que los nerds somos listos. ¿Cuantos cassette vendieron? :geek: :shock:


Volver a “Fichas micros”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados