El Honeywell 200 era un ordenador comercial de dos direcciones orientado a caracteres [1] : 70C-4S0-01n introducido por Honeywell en diciembre de 1963, [2] la base de los modelos posteriores de la serie Honeywell 200, incluidos 1200, 1250, 2200, 3200, 4200 y otros, [3] [4] y el procesador de caracteres del Honeywell 8200 (1968). [5] [6] [7]
Introducido para competir con el 1401 de IBM , el H200 es dos o tres veces más rápido y, con soporte de software, la mayoría de las veces [8] [9] puede ejecutar programas IBM 1401 sin necesidad de recompilación o reensamblado. La campaña de marketing de Liberator explotó esta compatibilidad y se le atribuyó en posteriores declaraciones publicitarias de Honeywell el estancamiento de las ventas de las máquinas IBM 1401. [10] Honeywell afirmó una avalancha inicial de cientos de pedidos del H200 que a su vez se estancó cuando IBM contraatacó [11] [12] con un énfasis de marketing en su gama de productos System 360 que entonces estaba en desarrollo.
Tal como lo diseñó el Director de Ingeniería William L. Gordon, [13] [14] la memoria H200 consta de caracteres direccionados individualmente, cada uno compuesto de seis bits de datos, dos bits de puntuación y un bit de paridad. [1] : 70C-4S0-01a Los dos bits de puntuación registran una marca de palabra y una marca de elemento, mientras que ambos al estar configurados constituyen una marca de registro . El bit de elemento permite movimientos de elemento y movimientos de registro además de movimientos de palabras (mover caracteres sucesivos uno por uno comenzando en las direcciones dadas en la instrucción, deteniéndose cuando se encuentra el signo de puntuación relevante configurado en cualquiera de los campos).
Una instrucción consta de un código de operación de un carácter, hasta dos direcciones de operandos y una variante opcional de un solo carácter. Por lo general, el carácter del código de operación estaría marcado con una palabra, lo que confirma el final de la instrucción anterior. Un código de operación marcado con un elemento se manejaría de manera diferente a la normal, y esto se utilizó en la emulación de instrucciones IBM 1401 que no eran directamente compatibles. En el modo de dirección de dos caracteres, la dirección completa definía un carácter en el bloque de 4K direccionado actualmente por el registro relevante. En el modo de dirección de tres caracteres, los primeros tres bits de una dirección de operando pueden designar uno de los seis registros de índice que ocupaban las primeras 24 ubicaciones de memoria direccionables. Los otros dos patrones de bits posibles indicaban que no había indexación (000) o que había direccionamiento indirecto (111). En el modo de dirección de cuatro caracteres, toda la memoria instalada (hasta 512 K en un modelo 4200) era direccionable directamente y, además, los cinco bits superiores de cada dirección pueden especificar direccionamiento directo, direccionamiento indirecto o direccionamiento indexado a través de dos conjuntos de 15 registros de cuatro caracteres; en un programa que se ejecuta en modo protegido, ambos conjuntos eran los mismos, ubicados en las primeras 60 ubicaciones del área de memoria a la que se reubicaba el programa. [15] [16]
Una instrucción de modo de cambio de dirección (CAM) alternaba entre modos de dirección de 2, 3 y 4 caracteres. El modo de dirección especificaba la cantidad de caracteres necesarios para cada dirección de operando en las instrucciones.
Una instrucción de modo de cambio de secuencia (CSM) intercambiaba el contenido del contador de instrucciones y de un registro de cambio de secuencia (dos registros de la memoria de control, ligeramente más rápidos pero mucho más pequeños que la memoria principal). Esto proporcionaba un cambio simple entre subprocesos dentro de un programa, similar al comportamiento de secuencia/cosecuencia de la serie 800 de Honeywell .
Si bien el H200 admitía el funcionamiento con solo una consola, un lector de tarjetas y una perforadora como el IBM 1401, las instrucciones genéricas de entrada-salida también admitían impresoras de línea, unidades de cinta magnética y unidades de disco.
Las instrucciones de E/S no modificaban los bits de puntuación, solo leían o escribían bits de datos (y paridad) en la memoria y finalizaban en cualquier marca de registro que se encontrara. Se podía colocar una marca de registro al final de un búfer de entrada para evitar cualquier desbordamiento del búfer, un problema que persistiría en muchos otros sistemas hasta el siglo XXI.
Las instrucciones de E/S de la serie 200 eran una Transferencia de Datos Periféricas (PDT) y una Bifurcación y Control Periféricas (PCB) [15] que implementaban explícitamente la E/S asincrónica. La PDT especificaba una dirección de dispositivo, una dirección de búfer y la operación de transferencia que se debía iniciar, mientras que la PCB especificaba una dirección de dispositivo, una dirección de bifurcación y establecía el modo operativo o probaba el estado del dispositivo (bifurcándose a la dirección especificada si se cumplía la condición especificada, por ejemplo, si el dispositivo estaba ocupado realizando E/S). Ambas usaban el formato Código de operación Dirección Dirección de unidad de E/S Variante.
El lenguaje ensamblador nativo se denominó "" Codificador fácil ".
El ensamblador Easycoder generó un archivo de objeto como una baraja de cartas binarias que se puede perforar para formar tarjetas o escribir en cinta magnética. El archivo de objeto comenzó con una rutina de arranque para que cada programa se pueda cargar en la memoria, desde el lector de tarjetas o la cinta magnética, utilizando un comando de arranque desde la consola.
En el sistema operativo Mod 2, el ensamblador Easycoder y cada compilador generaban módulos de objetos en un "archivo go" en cinta; estos objetos se vinculaban luego mediante el programa LINKLOAD en uno o más programas ejecutables en un "archivo de trabajo", todavía en cinta, que se puede ejecutar directamente desde la cinta o cargar en modo de 8 bits (es decir, incluyendo marcas de palabras y marcas de elementos) en el disco para una ejecución más rápida.
Aunque Honeywell hizo mucho hincapié en el uso de COBOL , [1] : p.70C-480-01m también admitió FORTRAN y RPG . [1] : 70C-480-01i
El H200 se utilizaba comúnmente como un ordenador de cola de impresión asociado a una máquina más grande de la serie 800 de Honeywell . El H1800-II consistía en un mainframe H1800 equipado únicamente con unidades de cinta magnética y una conexión de adaptador en línea (OLA) a un H200 satélite para simular un lector de tarjetas para leer volúmenes bajos de tarjetas de control de trabajos. El programa LINK que se ejecutaba en el H200 manejaba el OLA, [1] : 70C-480-01hh [17] copiaba tarjetas perforadas o cinta de papel perforada a cinta magnética, y copiaba registros de cinta magnética a perforadora de tarjetas y/o a impresora de línea.
Las computadoras de la serie 200 (H1200, H1250, H2200 y H4200) eran mainframes por derecho propio, capaces de manejar (con el sistema operativo Mod 2) hasta dos flujos de trabajo simultáneos además del "monitor residente" (es decir, el núcleo). La computadora de gama alta de la serie (la H4200) tenía una CPU de 1,33 MHz que podía direccionar hasta 512K (524288 caracteres) de memoria.