
En este artículo quiero hablar sobre la arquitectura de los microcalculadores programables soviéticos usando la calculadora electrónica MK-52 como ejemplo y cómo se puede incorporar a su arquitectura.
Las calculadoras soviéticas de la familia "
Electrónica B3-34 " ("Electrónica MK-56", "Electrónica MK-61" y "Electrónica MK-52") fueron especialmente populares en la URSS. La razón de esto no fue solo un precio asequible de 65 rublos para el MK-54, 85 rublos para el MK-61 o 115 rublos para el MK-52, sino también un lenguaje de programación desarrollado. Esta familia de calculadoras se ha convertido en el estándar de facto para numerosos usuarios.
Se dedicó
una gran cantidad de libros a la programación en estas máquinas y a la publicación de algoritmos listos para usar. La electrónica MK-52 incluso voló al espacio en la nave espacial Soyuz TM-7, donde se suponía que debía usarse como respaldo en caso de un mal funcionamiento del equipo de navegación de descenso. Incluso en la Armada de la URSS, la calculadora electrónica MK-52 con la unidad de expansión de memoria Astro PDU fue durante algún tiempo una herramienta estándar para los cálculos de navegación.

El microcalculador MK-52 pertenece a la segunda generación de microcalculadores programables soviéticos.
La primera generación fue la familia
B3-21 (incluidas
MK-46 ,
MK-64 y
MS 1103 ). El modelo básico B3-21 fue desarrollado en 1975 y producido en masa desde 1977. Tenía una pila de trabajo para dos números (B3-21, como la familia B3-34 - calculadoras con RPN - un registro polaco inverso (o sin bloqueo) - donde los números se ingresan primero en la pila, y luego se presiona el botón de operación).

Además de la pila de trabajo, había una pila de anillos adicional de 6 números. Puede escribir un número en un círculo en esta pila y luego extraerlo. Y otros siete registros de memoria con números del 2 al 8 (ocho en MK-46, MK-64 y MC 1103) son registros de memoria ordinarios para almacenar números. El número de pasos del programa para B3-21 es 60. En los modelos MK-46, MK-64 y MC 1103 hay 66. Los últimos modelos son calculadoras de escritorio con bloques para monitorear parámetros desde dispositivos externos. En MK-46 solo había la oportunidad de recibir códigos digitales, y en MK-64 y MS 1103 se instaló un cassette con un convertidor analógico a digital, y un chip adicional K145IK1801, que organizó la interacción. Debido a la instalación de este chip, apareció un registro de memoria adicional con el número 9 y seis pasos más del programa. El control de lectura se produjo a través del número de registro 9 ingresando el código de comando. Del mismo modo, por cierto, el MK-61 y el MK-52 estaban equipados con el chip K745IK1306, que, además de funciones adicionales, agregó un registro más y siete pasos más del programa, pero más sobre eso más adelante.
En algún lugar de 1980, la segunda generación de microcalculadores programables apareció frente a "Electrónica B3-34". Las primeras copias costaron 120 rublos, pero la planta rápidamente redujo el precio a 85 rublos y vendió el modelo en algún lugar hasta 1985. En general, el precio de las calculadoras es el tema de discusión para un artículo separado: en algún lugar, los precios disminuyeron a medida que se publicaron, en algún lugar aumentaron. Si está interesado, puede buscar cambios en los precios en mi sitio a lo largo de los años. Intento recopilar esa información lo más posible. La calculadora B3-34 fue reemplazada por funciones similares, pero más compactas MK-54, escritorio MK-56. Unos años más tarde, el chip K745IK1306 apareció con funciones adicionales y lanzó nuevos modelos MK-61 en un caso similar al MK-54, y un MK-52 horizontal con una EEPROM interna K1601PP1 en 512 pasos (algo único, no he visto otras calculadoras con EEPROM en el mundo : tienen CMOS RAM de bajo consumo o Flash más moderno) y dos conectores para conectar dispositivos: el primero se usó para conectar módulos de memoria externos de las "unidades de expansión de memoria PDU", y el segundo era tecnológico y no había nada conectado allí (la fábrica explicó cómo la tecnología conector biológico para pruebas durante la producción).
Vista trasera:


En comparación con los microcalculadores de primera generación, la mejora fue significativa. El número de registros para almacenar números aumentó de 8/9 a 14/15.
La pila operativa de dos registros aumentó en dos registros más: X, Y, Z, T. Un registro del último valor del registro X apareció antes de realizar la última operación aritmética - BX (nosotros registramos los registros operativos X, Y, Z, T con el último registro X, más bien en total, las calculadoras Hewlett Packard con registros similares, sin embargo, aquí es donde termina la identidad con HP). El área del programa de 60/66 pasos aumentó de 98 pasos (para B3-34, MK-54, MK-56, MC 1104) a 105 pasos (para MK-61 y MK-52).
En el programa, puede usar bucles automáticos en los registros L0-L3, luego el registro correspondiente se reduce en 1, en comparación con cero y ramificación en la dirección.
Las calculadoras de segunda generación han mejorado enormemente la implementación del direccionamiento indirecto. Cualquier registro de memoria puede usarse como índice para guardar / recuperar números, así como para transiciones indirectas a programas y subprogramas, incluso con una condición. En este caso, el valor del registro de salto indirecto se reducirá automáticamente (registros 0-3), aumentará (registros 4-6) o se mantendrá sin cambios.
Todas estas acciones automáticas con registros guardan en gran medida el área del programa y facilitan la programación.
Puedes hablar sobre trabajar con el MK-52 durante mucho tiempo. Acabo de hablar brevemente sobre las capacidades de estas máquinas para aquellos que no trabajaron con ellas.
Me gustaría comenzar la conversación sobre arquitectura con una historia. La familia de calculadoras B3-21 y B3-34 es el desarrollo del Instituto de Microdispositivos de Investigación Científica de Kiev (NIIMP). Las primeras calculadoras llamadas "
Electrónica 4-71 " aparecieron en 1971. A dos empresas se les encomendó la tarea de hacer calculadoras en grandes circuitos integrados, el NIIMP de Kiev y el Leningrado Svetlana, en el 24 ° Congreso del PCUS en 1971. Como resultado, aproximadamente al mismo tiempo, aparecieron dos modelos de calculadoras: los mencionados Electrónica 4-71 y
Electrónica 24-71 (
¿obtienes el nombre de los modelos?). El modelo 4-71 se fabricó con control de microprograma, como las primeras calculadoras de la familia Iskra, con lógica en las máquinas Moore en colaboración con la Oficina de Diseño Especial del Estado de Leningrado. Es decir, cuando se presiona el botón, los disparadores necesarios hacen clic (según el propósito del botón), que forman el paso de los microcomandos correspondientes. Autómatas: esto es ciertamente bueno, pero no llegará lejos en términos de mejora. Incluso las calculadoras
Iskra-114 de la Oficina de Diseño Especial del Estado en 1974 ya tenían ROM K5YAP011001 (presumiblemente la primera en los microcircuitos ROM con chip de la URSS) con firmware.
Y así, en 1973, NIIMP
apareció núcleo de microcontrolador de su propio diseño. Guarde ese sitio como referencia mientras esté vivo: hay mucha información interesante sobre NIIMP. El primer
microcalculador B3-09 Electronics en el microchip K145IK2A salió como el "primer panqueque" y no
echó raíces, pero sus modificaciones
B3-09M Electronics , B3-14M y B3-14 se dispararon, se produjeron cientos de miles de piezas anualmente y resolvió el problema del cálculo del déficit. No había suficientes calculadoras de nuestra producción en esos años, y fueron importadas del extranjero, tanto de países socialistas como de países capitalistas. ¿Recuerdas la película "Office Romance" en 1977? Puede ver, a partir de las
9:15 , qué calculadoras están en las tablas, principalmente el transistor RDA "Soemron 220" y el búlgaro "Elka 50" de la primera modificación.



Se pueden ver fotografías más grandes en el sitio web de Radio Pictures:
K145IK2 ,
K145IK501 ,
K145IK502P .
Estos son cristales de microcircuitos K145IK2, IK501 e IK502. Como puede ver, las fichas de una calculadora simple con cuatro operaciones aritméticas K145IK2 prácticamente coinciden con las fichas de la calculadora programada "B3-21" (K145IK501, 502 y 503). Estos últimos solo difieren en "firmware". El número de firmware se muestra en una capa separada después del nombre.



Y este es un chip de cristal más avanzado
K145IK1302 , que se encuentra en las calculadoras programables de la familia "Electronics B3-34", incluido el "Electronics MK-52", del que trata este artículo.
Tres áreas son visibles en el centro del chip (marcado en verde). Esta es la memoria de los microcomandos, la memoria de los programas de sincronización y la memoria del programa. Amarillo indica registros de desplazamiento de anillo.
El procesador de la calculadora funciona a una frecuencia de 75-100 kHz. El procesador tiene una ALU de un bit (dispositivo de lógica aritmética) con varias fuentes y receptores.
Para cuatro microtactos, el procesador realiza un microcomando (en una computadora portátil). Cada microcomando dice qué conjunto de fuentes tomar para el sumador y dónde colocar el resultado.
En total, el microcircuito tiene 68 microcomandos con una longitud de 27 bits cada uno, 128 programas de sincronización diferentes y 256 celdas para comandos.
El microprocesador de la calculadora (sería más exacto decir el microcontrolador, porque dentro de él hay puertos ROM, RAM y entrada-salida) funciona de acuerdo con un principio consistente. Todos los registros son registros de desplazamiento.

Dentro del procesador, todo está en bucle y se asemeja a un parque de diversiones con carruseles, una rueda de la fortuna y un autobús ideal con visitantes, con una puerta trabajando en la entrada, la otra en la salida, y los visitantes se mueven gradualmente de principio a fin.
Un empleado del parque (microcomando), verificando con un cuaderno (campo de microcomando), en cada microtacto, extrae (o no) del carrusel de celdas abordado, la rueda de la fortuna o el próximo pasajero del autobús (es decir, el siguiente registro), los dirige a la atracción "sumador", donde algunas acciones tienen lugar con ellos y el resultado se envía de vuelta, también dependiendo de los campos del microcomando. Esta rutina es válida para 4 bits, después de lo cual se incrementa el número de medida.
Dado que los registros son circulares, los desarrolladores tuvieron que establecer su tamaño correctamente. Como resultado, el número base para las calculadoras de la familia K145IK13 fue el número 42.
Esta longitud (42 tétradas) tiene registros secuenciales: registros M, R y ST. Para no esperar hasta que los números necesarios avancen a lo largo del anillo, además hay varios registros de 4 bits y un bit como el registro de transferencia disponible en cada ciclo de reloj. Un número con una mantisa de 8 bits y un orden de 2 bits ocupa 14 tétradas (un tercio de 42). Exactamente tres números caben en el registro de anillo, lo que permite, por ejemplo, implementar el registro de memoria y el almacenamiento de dos números al calcular con paréntesis, como se implementa en la calculadora "Electrónica B3-32" en K145IK1301.
Con el número 42, la llamada "memoria de programas de sincronización" también trabaja duro, que contiene las direcciones de los microcomandos que deben ejecutarse.
Se llama programa de sincronización porque está estrechamente sincronizado con el tamaño del registro de timbre y el número de medida 0-41: un ciclo de timbre.
Cada programa de sincronización contiene nueve números de microcomandos que deben ejecutarse.
Los comandos de sincronización son bastante interesantes. Los desarrolladores analizaron los algoritmos y calcularon que, teniendo en cuenta las transferencias, una operación típica de ALU en una computadora portátil requiere tres ciclos de reloj, y las acciones realizadas son bastante similares. Y lo hicieron para que los microcomandos, dependiendo del número de medida (0-41), siempre se ejecuten en hardware en la siguiente secuencia:
0, 1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5

Marqué en amarillo las mismas secciones (microcomandos 3, 4, 5), que se ejecutan siete veces seguidas. Esto es suficiente para procesar un número de ocho dígitos. De hecho, estos son microalgoritmos listos para usar. Por un lado, dichos bucles integrados reducen la capacidad de la ROM requerida para el programa, pero por otro lado, imagine que dicha secuencia siempre se ejecuta en cada línea del programa.
Dado que una tétrada se procesa en tres medidas, los datos durante este tiempo logran salir en un anillo. Debido a esta característica, los números en los registros de anillo no se almacenan en celdas consecutivas, sino en cada tercio, de modo que acaban de llegar a tiempo para el final de los ciclos 3, 4, 5.
La siguiente figura muestra el área de memoria del programa. En la memoria de programas en cada uno de sus campos contiene información sobre tres programas de sincronización que deben realizarse en un ciclo de llamada. También hay un matiz de que el tercer programa de sincronización se usa generalmente para todo tipo de ramas. En el registro R, las celdas 36 y 39 se asignan a la dirección del programa actual que se está ejecutando, solo aparecen en los relojes correspondientes cuando se ejecutan los dos primeros programas de sincronización, y el tercer programa de sincronización está procesando esta dirección.
Por supuesto, dentro del microprocesador funciona aún más complicado. Solo una descripción de él con todos los matices ocupa más de una docena de páginas del libro Trokhimenko Y. “Microcalculadores programables. Dispositivo y uso "(google book).
Esta arquitectura con tres niveles de procesamiento: memoria de programa con direcciones de programas de sincronización, memoria de programas de sincronización con números de microcomandos y memoria de microcomandos con un conjunto de fuentes y receptores es la base para toda una familia de microcircuitos K145IK2, K145IK13xx, K145IK18xx y K145IK19xx, solo que tienen diferentes tamaños de registro, el direccionamiento y la ramificación se realizan a otro y se realizan otras mejoras y cambios.
Y lo más interesante que hicieron los desarrolladores en 1973 fue que sacaron los cerebros del procesador para la expansión. Me refiero a registros de anillo. En la primera calculadora de masa B3-09M, la capacidad de registro era suficiente y no se requería expansión. Pero, ¿y si la atracción no es suficiente? Puede aumentar su tamaño o poner otro al lado. Para no aumentar el tamaño de la ROM, y por lo tanto el tamaño del cristal, para reducir el rendimiento de cristales adecuados en el proceso de producción y otras dificultades, los desarrolladores tomaron varios procesadores idénticos e hicieron un registro de anillo común.


Aquí en la fotografía a la izquierda es parte del cristal K145IK2, y a la derecha está K145IK5. Puede prestar atención a la esquina superior izquierda. Ya en el proceso de producción hay un pequeño puente que cierra dos almohadillas de contacto (registro de anillo). Y en K145IK5 este puente no está, y el registro de anillo no está cerrado.
En 1975, aparecieron las primeras muestras de la calculadora programable "
Electronics B3-21 ". Allí puede ver hasta tres procesadores del tipo K145IK5: K145IK501, K145IK502 y K145IK503. Solo difieren en el firmware.
El primer procesador K145IK502 se dedica a la entrada y salida del teclado al indicador, procesando acciones en modo automático y entrada de programa y modo de ejecución.
K145IK501 se dedica a operaciones aritméticas y K145IK503 a operaciones trigonométricas. Y dado que también se necesitaba una capacidad para almacenar el programa de usuario y los registros de memoria, además de la brecha en el mismo registro, colocaron el chip K145IR1, que es un gran registro de desplazamiento. Como resultado, aparecieron tres viajes con tres autobuses conectados en serie y un tren. Y todos los datos se mueven constantemente a lo largo de un anillo común con la velocidad de un generador de reloj.
Gracias a Felix Lazarev, que pudo leer el firmware de estos microcontroladores y comprender la arquitectura, obtuvimos un
emulador de calculadoras como MK-61 y B3-34, donde puede estudiar su trabajo con más detalle y jugar a encender y apagar los chips del anillo común.
El primer microcalculador de la segunda generación "
Electronics B3-34 " utilizó chips K145IK1302 (entrada / salida, modos de funcionamiento), K145IK1303 (funciones matemáticas) y dos registros K145IR2 de 1008 bits cada uno.

En total, dos registros M y dos registros de 1008 bits forman cada uno un anillo de 42 * 4 + 42 * 4 + 1008 + 1008 = 2352 bits de tamaño.
Los desarrolladores dividieron el campo de datos completo en tres áreas idénticas de 784 bits (196 tétradas o 98 bytes). El programa de usuario se almacena en la primera área (98 pasos), los registros de datos en la segunda área (14 registros con números 0-9, a, b, c, d de 14 tétradas cada uno), y la tercera área es la de servicio.
Unos años después de la aparición del B3-34, aparecieron dos nuevos modelos: el MK-61 y el MK-52. Agregaron otro chip K145IK1306, donde se calculan las operaciones con grados y operaciones lógicas. El anillo comenzó a verse así:

Tenga en cuenta que en K145IK1306 existe el mismo registro M que en K145IK1302 y K145IK1303. La aparición de este chip agregó un registro de memoria (14 tétradas) al anillo, otros siete pasos del programa (14 tétradas) y el área de servicio aumentó en 14 tétradas.
En MK-52 también hay un chip K745IK1801, que transfiere datos desde un chip EEPROM o una unidad de expansión de memoria extraíble. Pero no usa un anillo de registro.
El desglose de todo el anillo de datos en las calculadoras del tipo MK-61 y MK-52 se muestra en la siguiente figura:

Como dije, todo el anillo se divide en tres áreas: M1, M2 y M3.
En la región M1 hay registros de memoria 0-9, a, b, c, d, e. Lo interesante de ellos es que para almacenar números necesita 12 tétradas (1 es el signo mantisa, 8 es el signo mantisa, 3 es el orden) y 14 tétradas se asignan para un registro (que se dividirá por 42 en el procesador). Como resultado, no se utilizan dos cuadernos para cada registro.
En el área de M3 se encuentra la memoria del programa. Todo es simple allí: 98 pasos para B3-34 y 105 pasos (14 tétradas más) para MK-61 y MK-52.
El área M2 es la más interesante. Además de los registros X, Y, Z, T, BX, también contiene la región Ms, el canal de comunicación KS y Label.
Las áreas que se muestran no se siguen. ¿Recuerdas que dije que en el programa de sincronización hay varias operaciones repetitivas que toman tres ciclos de reloj y hacen que los números en los registros se almacenen en cada tercera celda? Esto es lo que se implementa en los datos del anillo. Primero, se transmite la primera tétrada de la región M1, luego la primera tétrada de la región M2 y luego la primera tétrada de la región M3. Luego vienen los segundos cuadernos y así sucesivamente.
Y aunque durante tres ciclos de reloj los microcomandos 3, 4, 5 se resuelven en el programa de sincronización, se omiten las áreas innecesarias.Cuando me ocupé de la distribución de datos en un círculo común, estaba muy deprimido por el área designada como Sra. Es bastante grande, ocupa una sexta parte del área de datos del anillo. Y esta área no se usa en la calculadora. Al desarrollar la arquitectura, los desarrolladores brindaron la oportunidad de crear un "área de programa de datos". Esta es un área en la que uno puede escribir un programa o registros de datos. Además, un área bastante grande: 56 pasos del programa. En las calculadoras, se suponía que debía incluir funciones especiales en combinación con el botón [K] para el intercambio (arriba de los botones 1 y 2, ahora hay un lugar vacío allí). Pero, repito, en los modelos en serie esta área desapareció, por lo que podríamos haber tenido más registros de memoria o un programa 56 pasos más. Esta área fue mencionada casualmente en la revista "Technique-Youth", No. 7 para 1986.
El elemento más importante de sincronización en los datos del anillo es la llamada "Etiqueta". Esta es una secuencia de nueve cuadernos que consta de unidades. Cuando aparece el código "Tag", el contador interno de los procesadores se reinicia y el anillo comienza a contar con respecto al código Tag. Al principio, después de encender la máquina, el procesador principal K145IK1302 inicializa el anillo y forma la marca. Los comandos y el contenido de los registros se seleccionan para que el código de etiqueta no se encuentre en los datos o en el programa.Los usuarios avanzados de las calculadoras de la familia B3-34 han escuchado sobre el "dummy", una operación no documentada cuando solo se muestra un punto decimal en el indicador. Este es un código que consta de solo unidades. Cuando aparece este código, el contador interno se desvía y la calculadora comienza a asustarse (aparecen dos códigos. La etiqueta y toda la sincronización se desvía), la calculadora toma un área de memoria por otra.El direccionamiento interno es relativo al código de la etiqueta. Cuando apareció el chip K745IK1306 con un registro adicional M, el número de celdas aumentó y se agregaron condicionalmente al final, porque en la arquitectura toda el área de datos en el anillo es continua. En esta arquitectura, puede agregar otro procesador como K145IK13, luego se convertirá en un registro de memoria más y se agregarán 7 pasos más del programa (máximo 112).Lo más probable es que la representación interna de los datos funcione de manera similar en la calculadora no programable Electronics MK-44 , realizada en el mismo microprocesador K145IK1305. Fue una de las calculadoras de escritorio más populares en nuestro país. Tiene tres registros de memoria. Me preguntaba qué pasaría si arranco el anillo del registro que M sacó y agregué memoria allí. El experimento fue un éxito . El procesador "recogió" la memoria aparecida, y había diez registros de memoria en la calculadora.¿Y cómo interactúan los procesadores entre sí? Se "comunican" con un campo especial llamado "canal de comunicación" (CS). Tanto las calculadoras de la familia B3-21 como las calculadoras de la familia B3-34 tienen un procesador principal. En nuestro caso, este es K145IK502 para B3-21 y K145IK1302 para B3-34. Inicializan el anillo cuando se encienden, forman el código de "etiqueta" e interactúan con el operador, organizando la entrada y salida del teclado al indicador. Otros procesadores están en modo de espera y esperando comandos.Un "canal de comunicación" son dos computadoras portátiles en las que el procesador principal puede poner un número: un byte con un código de operación.Si el procesador principal no puede procesar la operación con ningún código por sí solo cuando trabaja en el programa o en modo manual, entonces coloca el código de operación en el registro de la caja del anillo y comienza a esperar.Los procesadores esclavos monitorean constantemente el registro de la COP en el anillo de datos. Tan pronto como aparece un código de operación que puede ser procesado por el procesador esclavo, comienza a procesarlo, por ejemplo, realiza la función de suma, calcula el seno, etc. El procesador esclavo extrae de forma independiente los registros necesarios del anillo cuando llegan a él en un anillo, los hace operaciones, y el resultado devuelve. Después de que el procesador realiza sus acciones, borra el registro del canal de comunicación, sobrescribiendo el cuaderno más bajo con el número "F". Es decir, si el número 10 apareció en el canal de comunicación (código de adición), al final del conteo, el número 1F se escribirá en el registro de la COP.Simultáneamente con el código de operación que se establece en el canal de comunicación, se activa un contador de espera especial, como un temporizador de vigilancia, en el chip principal. Si ningún procesador esclavo puede procesar el comando a través del canal de comunicación, luego de un cierto tiempo el procesador anfitrión borrará el canal de comunicación y mostrará un mensaje de error "YYGOG" en el indicador.Los chips esclavos usan este tiempo de espera si se produjo un error con un número durante el proceso de cálculo. Por ejemplo, un usuario intentó extraer una raíz de un número negativo. En este caso, el chip esclavo no pone nada en el canal de comunicación, y después de unos segundos, el procesador host muestra un mensaje de error. Por lo tanto, en las calculadoras, la salida de la inscripción "EGGOG" con tales errores tomó mucho tiempo.El procesador principal puede no saber qué otros procesadores hay en el ring. Simplemente pone el código en el canal de comunicación y otros procesadores lo procesan. Puede, por ejemplo, reemplazar el chip K745IK1306 con otro, o hacer su desarrollo basado en un microcontrolador, como lo hizo en la época soviética en la calculadora electrónica MS-1104 .Además del bus de datos en serie, las calculadoras del tipo “Electrónica MK-52” tienen una interfaz con EEPROM y módulos de expansión de memoria externa. Como escribí anteriormente, el MK-52 tiene un chip de memoria K1601PP1 borrable eléctricamente, en el que se pueden escribir hasta 512 pasos de programa. En lugar de la memoria del programa, se pueden guardar registros numéricos de memoria. Qué escribir: la memoria o los registros del programa se determina mediante el interruptor "D-P" en el panel frontal. Las mismas áreas en EEPROM se pueden usar tanto para el almacenamiento de programas como para el almacenamiento de registros. Puede escribir registros en la EEPROM, y los datos grabados pueden extraerse en el área del programa, y viceversa.Tipo de calculadora en el lado del microcircuito
: Microcircuitos grandes :
Además de la EEPROM interna, también se produjeron módulos de memoria intercambiables "PDU" (unidades de expansión de memoria). Son un chip ROM donde se graban los programas.Total de módulos conocidos:- PDU "Astro", también conocido como BRP-2 - programas de navegación. El módulo se usó en barcos, que escribí al principio del artículo.
- BRP-3 contenía programas matemáticos
- BRP-4: programas matemáticos y programas domésticos, incluidos juegos.
Las ROM eran bastante grandes, y en una PDU realmente ingresaron a los programas desde dos módulos. Es decir, los propietarios del módulo BRP-3 podrían abrir la carcasa, soldar el puente y obtener el módulo Astro BRP-2.Cuando leí los volcados, encontré un volcado de un módulo de destino desconocido en el módulo BRP-4. Todavía no hay información sobre cómo usar estos volcados.El chip de comunicación con EEPROM o PDU K745IK1801 es bastante independiente. También se sienta en el anillo de la calculadora, pero no rastrea los comandos. Solo recuerda el contenido del registro X como la dirección y la longitud del acceso a ROM o EEPROM presionando el botón [A ↑], y presionando el botón [↑ ↓] comienza a borrar, leer o escribir desde o hacia el programa o área de datos.En relación con la ROM de la PDU, la dirección en el código paralelo siempre se establece en el bus, y la PDU siempre proporciona el contenido de la celda.El módulo PDU se inserta en el zócalo correspondiente en la parte posterior de la calculadora MK-52.Seguramente todos los usuarios de MK-52, después de comprar una calculadora, vieron dos conectores en la parte posterior de la caja: grandes para PDU y pequeños, no está claro por qué. En las instrucciones y en las revistas, los desarrolladores explicaron que este conector se usa solo con fines tecnológicos en la etapa de producción.Tal vez se produjeron algunas modificaciones no seriales de la calculadora MK-52, pero no he oído hablar de ellas. Todo el tiempo quería desarrollar algún tipo de dispositivo que pudiera sentarse en ese conector y usarlo en el trabajo.Si te vuelves al conceptocalculadora, puede ver que además de los voltajes de suministro y las señales de reloj, las señales del anillo tomadas de la entrada y salida del chip K745IK1801 también se envían al conector. Para infiltrarse y grabar algo en el anillo, era necesario romperlo. Por supuesto, cambiar algo en el esquema MK-52 es la última opción. Pero resultó que la señal de salida del anillo del chip K745IK1801 es débil. Lo más probable es que esté ligeramente apretado a uno de los voltajes de suministro, y se puede sobrecargar libremente con su señal. Entonces lo hice. El microcontrolador monitorea el anillo MK-52, lo analiza y puede leer y escribir datos.Como resultado, obtuvimos un dispositivo: el módulo FRS-BRP. Aquí hay un diagrama esquemático:
El núcleo del módulo es el microcontrolador STM32F205. Interrumpe desde el generador de frecuencia interno de la calculadora que lee poco a poco los datos transmitidos a lo largo del anillo. Monitorea simultáneamente el bus paralelo para emular la unidad de expansión de memoria. Se necesita una gran cantidad de comparadores para la detección correcta de los niveles lógicos. El hecho es que la calculadora usa un voltaje negativo de 0 a -15 voltios. Este voltaje se genera a partir de una fuente de alimentación de 5 voltios. La placa también necesitaba usar estos voltajes, pero no solo a -15 voltios, sino también a -5 y -3.3. Como resultado, el voltaje que es 0 voltios en la calculadora en la placa FRS-SRP se convirtió en +5 voltios, y el que -5 voltios se convirtió en cero. En los comparadores, todo se puede filtrar bien, hay muchos, pero ahora son muy baratos. Básicamentelos comparadores están involucrados en la decodificación de señales del bus paralelo del emulador PDU. Por supuesto, la propia PDU se puede emular enviando datos directamente al anillo. Pero por autenticidad, para que el usuario presione los "mismos" botones que se describen en las instrucciones para la PDU, decidí hacer un emulador completo.
Ahora, pocas personas usarán la calculadora MK-52 para su propósito previsto. Hay medios más eficientes de computación. Pero para los entusiastas, para aquellos que quieren lidiar con su estructura interna, para quienes quieren usar programas probados o para aquellos que quieren jugar esos juegos que volvieron locos a los usuarios de mediados de la década de 1980, este módulo puede ser útil.Lo que este módulo puede hacer:- Se muestra en la pantalla OLED de contenido para seleccionar dos registros de la calculadora RAM (0-9, A, B, C, D, E) al mismo tiempo. En el modo de cuenta del programa, cuando la pantalla principal de la calculadora parpadea, puede hacer clic en los botones del módulo para ver los registros.
- () -, -3, -4, -5 ( -5 , ).
- (105 ) 1 130.
- 130 (105 ).
- . 3, 4 (0-9, A, B, C, D, E) 130 .
- , (, ) 50 .
- («-1», «-2», «-3», «-1», «-2», «»).
- 7451303 , , . , 7451303 , « », , .
- 0x28 (K *) 0x29 ( /).
Como escribí anteriormente, el código de operación se transmite a través del canal de comunicación. Ahora, casi todos los códigos están ocupados, y solo se pueden ingresar tres comandos no utilizados desde el control remoto: códigos 27, 28 y 29. En principio, son suficientes para algunas tareas. Aunque no sé qué comandos se pueden implementar porque la calculadora para su propósito previsto ya no es un pastel, pero el hecho del procesamiento es fascinante.
Bueno, y por supuesto, comunicación con una computadora a través de USB. El módulo implementa comandos de diálogo simples, puede leer y escribir el contenido de datos, programas, áreas de servicio o todo el anillo. Se puede guardar en el disco, extraer, analizar, modificar y escribir en una calculadora. Aquí hay una captura de pantalla:

Puede, por ejemplo, poner algún número en el canal de comunicación y ver cómo será procesado por otros chips. O averigüe qué sucede si alguna celda de servicio se escribe de manera diferente. O para verificar si es posible eliminar la calculadora del estado "oscuro", si el registro X se corrige a través del módulo a través del módulo, digamos, de 500 a 0, ¿lo eliminará del estupor?
Desafortunadamente, solo un anillo de datos sale de la calculadora. Y otros estados, como un contador de software, una señal, ya sea que la calculadora esté calculando de acuerdo con el programa o se muestre en el indicador, etc., esta información se encuentra en el registro interno R.
Pero los desarrolladores lo sacaron. Si observa el circuito del mismo MK-52, puede ver que hay un "cierto puente": es la salida y la entrada del registro "R". Es decir, si lo desea, puede conectarse a este bus y examinar más detenidamente su interior.
Tales registros deducidos probablemente se encuentran en todos los microcircuitos de la familia K145IK5, K145IK13, K145IK18 e incluso K145IK19. El famoso microcircuito de reloj "K145IK1901" también tiene los registros M y R. Sacados. Puedes asegurarte mirando el diagrama del circuito.

Incluso, como experimento, me
conecté a los registros en el reloj en K145IK1901 y llevé a donde tenía los datos.
En conclusión del artículo, diré que la familia de microcontroladores mencionada fue muy popular en el CCCP, una gran cantidad de calculadoras: se lanzaron modelos sobre la base de:
- K145IK2 - B3-09, B3-09M, B3-14, B3-14M;
- K145IK5xx - B3-05M, B3-21, MK-46, MK-64, MS-1103, MK-59, Elwro 330;
- K145IK13xx - B3-32, MK-44, B3-34, MK-54, MK-56, MK-52, MK-61, MS-1104.
En los microcircuitos de las series K145IK18xx y K145IK19xx hay electrodomésticos, de los conocidos son temporizadores para microondas,
relojes , temporizadores para fotografía, controladores de cinta en grabadoras y más.
Eso es todo lo que quería decir. Espero que haya sido interesante. Gracias por su atencion